大きなテーブルでは、このようなクエリを避ける必要があります。これにより、mysql のクラッシュまたはサーバー ダンプが発生する可能性があります。そして、それは問題ではありません。アドバイス:
1.インデックスを使用します(ただし、クエリの速度が低下する場合があります-たとえば、COUNTなどに注意してください)。
2.クエリには常に制限を設けてください SELECT * FROM thistable LIMIT 50
。
3.合計カウントに InnoDB を使用している場合は、 を使用しますEXPLAIN SELECT COUNT(*) FROM thistable
。myISAM ではCOUNT()
高速に動作します。
4.すべての結合を避ける。小さなテーブル (<100 レコード) での結合でも、クエリが 30 ~ 100% 遅くなる可能性があります。
2点目があなたの問題だと思います。例えば:
SELECT * FROM thistable LIMIT 30
=> 結果 (全部で 32,415,735、クエリにかかった時間は 0.0184 秒)`
SELECT COUNT(*) FROM thistable'=> result (31,912,535 all, Query took 215.14 sec.)