エントリーの編集

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
SQL_CALC_FOUND_ROWSを使うとインデックスが使われない?
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
SQL_CALC_FOUND_ROWSを使うとインデックスが使われない?
MySQLテーブルのレコード数が多くなってきて検索が徐々に遅くなってきたのでチューニング。 EXPLAINでSE... MySQLテーブルのレコード数が多くなってきて検索が徐々に遅くなってきたのでチューニング。 EXPLAINでSELECT文を解析してみたところ、どうも一番肝心のレコードが多いテーブルでインデックスが使われていないみたい。 インデックスの作り方が悪いのか、テーブルの構造が悪いのか、はたまたSQL文が悪いのかいろいろ試しました。 結局どうしてもインデックスが使われずにusing filesortが表示されて泣きそうになりました。 途方に暮れていた時なにげなーくSQL_CALC_FOUND_ROWS文を外してクエリを実行したところ・・・ possible_keysとkeyにしっかりとインデックス名が表示されている・・・ そしてExtraにはUsing where表記のみに・・・! まさか原因がそこだったとは自分の中では盲点でした。 ということでLIMITを解除した件数の取得は別でクエリを発行する