ホームページ >バックエンド開発 >PHPチュートリアル >mysql 8000+ のページネーションで任意のページをクリックすると、応答が 3 ~ 4 秒の間に制御されます。最適化を続けるにはどうすればよいですか?
採用された最適化手法:
制限の最適化。最初にページングに対応する ID を取り出し、次にフィールド
インデックス
ミイサムエンジン
添付コード:
クエリデータ総数:
下の図は、クエリページングに対応するIDを示しています:
下の写真はクエリ結果です:
--------------2016.7.6 17:47更新----------------------
あそこは本当にあるべきだったあなたがそれを望んでいるなら、私たちはすでにそれを処理しています、あなたがそれを望まないなら、私たちはもうそれを望まない、ということはありません。 コード図も更新されました。応答を2.5秒
実行計画は次のとおりです: これは最初のステートメントです、クエリデータの総量
リーリー
2番目のステートメントページングの最初のフィールドIDをクエリします
3 番目のステートメント: データ結果セットのクエリ
リーリー分析を手伝ってください...
採用された最適化手法:
制限の最適化。最初にページングに対応する ID を取り出し、次にフィールド
インデックス
ミイサムエンジン
添付コード:
クエリデータ総数:
下の図は、クエリページングに対応するIDを示しています:
下の写真はクエリ結果です:
--------------2016.7.6 17:47更新----------------------
あそこは本当にあるべきだったあなたがそれを望んでいるなら、それはすでに解決されています、あなたがそれを望まないなら、あなたはもうそれを望まないでしょう。 コード図も更新されました。応答を2.5秒
実行計画は次のとおりです: これは最初のステートメントです、クエリデータの総量
リーリー
2番目のステートメントページングの最初のフィールドIDをクエリします
3 番目のステートメント: データ結果セットのクエリ
リーリー分析を手伝ってください...
SQLと実行計画を投稿していただけますか
トランザクションで実行すると効率が向上します
1. まずテーブル接続クエリを単純なクエリに分割します
2. いいねする必要がありますか?
3 sql の概要:
1. SQL の総量、samplerecord はインデックスを使用しない、フルテーブルスキャン、必然的に遅くなります
2. クエリ ID の SQL、ソート + フルテーブル、それは遅くなることが予想されます
3.わかりました
つまり、完全なテーブルデータが本当に必要な場合、制限はそれほど遅くなりません。
最終的な推測は、code!='' 条件が高度にフィルタリング可能である、つまり、そのような条件が多数あるため、フィルタリングが遅くなるということです。インデックスを追加してみてください。