最近、これらのテーブルに多くの行を挿入したところ、クエリがタイムアウトになりました:
SELECT * FROM eng
WHERE english IN (SELECT eng FROM `eng-jap`)
ORDER BY lastmodified DESC
テーブル eng-jap には約 25,000 行あります。ここにいくつかの統計があります。
Format dynamic
Collation utf8_general_ci
Rows 24,960
Row length ø 316
Row size ø 328 B
Next Autoindex 26,468
Type Usage
Data 7,724.0 KiB
Index 264.0 KiB
Total 7,988.0 KiB
テーブル eng の場合:
Format dynamic
Collation utf8_general_ci
Rows 23,691
Row length ø 105
Row size ø 117 B
Next Autoindex 24,771
Type Usage
Data 2,451.4 KiB
Index 260.0 KiB
Total 2,711.4 KiB
いずれかのテーブルに対して * from table gets (クエリは 0.0002 秒かかりました) を選択するだけです
このような非常に単純なサブクエリで、各テーブルに数個の k があり、設定した 160 秒以上のタイムアウトが必要で、タイムアウトになるとは信じられません...
テーブルの設定が原因であることを願っています。またはmysqlは本当にこのようなクエリを実行できませんか?