自作のWEBアプリを作っていたところSELECT句が異常に遅いケースがありました。試しにexplainで調べてみるとrowのところの数値がoffsetの数がそのまま入っていました。(つまりoffsetの倍数そのままになります。BYにindexが貼られて入れば、0件目でも100万件目でも全く変わらないと思っていましたが、実は違うようです。対策としては下記のような感じでしょうか。idなどの連続する値の場合はbetweenで挟むoffsetの始点にwhere条件を切り替えて検索するOFFSETを使わない高速なページネーションの実現あとは遅い原因の絞り込み方としてはexplainの活用がメインになりますね。基本rowsの数を少なくすることが目的indexが適切に貼られているか、使われているか(explainのkeyをみて値が適切かどうかを見ましょう。)自分の場合ですが、indexが適切に貼られているにも関わらずjoinを使った場合、型が片方はintもう片方はvarcharで高速化できない、ということがありましたまあ珍しいケースではあると思いますが、遅い場合には見ておきましょう。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。関連記事FirebaseでのミニアプリデプロイKVS的なDBを使うかもしれず、firebaseの復習をしております。...NULLについて「達人に学ぶSQL徹底指南書」を読み進めていきましたがNULLについていろいろ書いてあるのでメモリます。...リレーションを含んだテーブルでの副問い合わせ本日はSQLネタです。下記のようなテーブル構成があったときとします。注文ヘッダと注文詳細は(1:N)とします。ここで、product_id=5を含んだ注文ヘッダーレコードを取り出したいとします。...cakeでのトランザクション、コミット、ロールバックcakePHP(2.X系)でのトランザクション、コミット、ロールバックについて。SQLにおいては全く同じ結果を返すのであってもその検索結果が異なるということはよくあります。