我有一个大表(近200万条记录),有4列。所有这些都是DECIMAL。
FIELD1 DECIMAL,
FIELD2 DECIMAL,
FIELD3 DECIMAL,
FIELD4 DECIMAL
FIELD1
是我的PK。
FIELD3
有一个INDEX。
我的删除查询存在问题。
DELETE FROM MY_TABLE where FIELD1= <const>;
当我用ssh连接到服务器机器并运行命令时 - 它成功了! 但是,我有一个带有iBatis命令的java进程,并且在运行SAME delete命令时 - 它在状态更新时停留在MySQL服务器上。
mysql> show processlist;
| Query | 278 | updating | delete from MYTABLE where FIELD1 = 'D' |
我试图运行优化表和分析表,但它没有帮助。 我试图重新创建表格 - 但同样,它没有帮助。
可能是什么问题?为什么delete命令直接在服务器上成功?而不是在用iBatis执行时?
我有另一个表,有类似的问题 - 那里 - 服务器上的删除,花费很短的时间,但从iBatis执行时需要7秒。完成!!
可能是什么问题? 如何改进那些删除命令???
更新
我编写了一个简单的java进程(打开jdbc连接和执行语句),在没有iBatis的情况下执行相同的'delete'命令 - 它运行完美!
这意味着它与iBatis有关......它有什么用?