1

4 つの列を持つ大きなテーブル (ほぼ 200 万レコード) があります。それらはすべて 10 進数です。

FIELD1 DECIMAL,
FIELD2 DECIMAL,
FIELD3 DECIMAL,
FIELD4 DECIMAL

FIELD1私のPKです。 FIELD3INDEXがあります。

削除クエリに問題があります。

DELETE FROM MY_TABLE where FIELD1= <const>;

サーバー マシンに ssh で接続してコマンドを実行すると、成功しました。しかし、iBatis コマンドを使用する Java プロセスがあり、同じ削除コマンドを実行すると、ステータスの更新時に MySQL サーバーで停止します。

mysql> show processlist;

| Query   |   278 | updating | delete from MYTABLE where FIELD1 = 'D' |

テーブルの最適化とテーブルの分析を実行しようとしましたが、役に立ちませんでした。テーブルを再作成しようとしましたが、やはり役に立ちませんでした。

何が問題になる可能性がありますか? delete コマンドがサーバー上で直接成功するのはなぜですか? iBatisで実行するときではありませんか?

同様の問題がある別のテーブルがあります-そこ-サーバーでの削除には短い時間がかかりますが、iBatisから実行すると7秒かかります。完成する!!

何が問題になる可能性がありますか? これらの削除コマンドを改善するにはどうすればよいですか???

アップデート:

iBatisなしで同じ「削除」コマンドを実行する単純なJavaプロセス(jdbc接続を開いてステートメントを実行する)を作成しました-そしてそれは完璧に動作します!!

それはiBatisの何かということです...それは何でしょうか?

4

0 に答える 0