0

大きなクエリがあります。localhost で実行すると、0.01 秒かかります。リモート接続(別のサーバー)から試してみると、まったく実行されません。一般的なログには、接続が入っていることが示され、それ以外は何も表示されません。クエリは、スロー クエリ ログにも表示されません。「show processlist」を実行すると、接続があることが示されますが、スリープ状態であり、情報が NULL です。tcpdump (tcpdump -i eth0 -s0 -A port 3306) を実行すると、クエリが表示されるので、サーバーに到達していることはわかっていますが、そこから MySQL に到達していません。

my.cnf からのいくつかの設定

key_buffer = 32M 
max_allowed_packet = 32M 
query_cache_limit = 1M 
query_cache_size = 16M 
innodb_buffer_pool_size = 32M 
innodb_log_file_size = 256M

これらはすべて、クエリに十分な大きさです。IN() があり、その中に約 400 の ID が含まれていますが、その DB にテーブルが存在しないため、IN (SELECT) を実行できません。最も奇妙な部分は、数週間前は問題なく機能していたことです。my.cnf に加えた変更は次のとおりです。

innodb_support_xa = 0
innodb_flush_log_at_trx_commit = 0

(ただし、最後までログに記録しないことで、挿入の速度が向上しました)

クエリを短くすると実行されます。それはiptablesで何かを制限している可能性がありますか? MySQLに接続しているサーバーからのPHPの制限でしょうか?

私はこれで完全に迷っており、かなりうまく箱詰めされています。何か案は?

4

0 に答える 0