ホームページ >バックエンド開発 >PHPチュートリアル >mysql 8000+ のページネーションで任意のページをクリックすると、応答が 3 ~ 4 秒の間に制御されます。最適化を続けるにはどうすればよいですか?

mysql 8000+ のページネーションで任意のページをクリックすると、応答が 3 ~ 4 秒の間に制御されます。最適化を続けるにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-08-04 09:22:22926ブラウズ

採用された最適化手法:

  1. 制限の最適化。最初にページングに対応する ID を取り出し、次にフィールド の値に基づいて、次に制限

  2. インデックス

  3. ミイサムエンジン

添付コード:
クエリデータ総数:

mysql 8000+ のページネーションで任意のページをクリックすると、応答が 3 ~ 4 秒の間に制御されます。最適化を続けるにはどうすればよいですか?

下の図は、クエリページングに対応するIDを示しています:

mysql 8000+ のページネーションで任意のページをクリックすると、応答が 3 ~ 4 秒の間に制御されます。最適化を続けるにはどうすればよいですか?

下の写真はクエリ結果です:

mysql 8000+ のページネーションで任意のページをクリックすると、応答が 3 ~ 4 秒の間に制御されます。最適化を続けるにはどうすればよいですか?

--------------2016.7.6 17:47更新----------------------
あそこは本当にあるべきだったあなたがそれを望んでいるなら、私たちはすでにそれを処理しています、あなたがそれを望まないなら、私たちはもうそれを望まない、ということはありません。 コード図も更新されました。応答を2.5秒

未満に抑えることができるようになりました。

実行計画は次のとおりです: これは最初のステートメントです、クエリデータの総量

リーリー

mysql 8000+ のページネーションで任意のページをクリックすると、応答が 3 ~ 4 秒の間に制御されます。最適化を続けるにはどうすればよいですか?
2番目のステートメントページングの最初のフィールドIDをクエリします

リーリー

mysql 8000+ のページネーションで任意のページをクリックすると、応答が 3 ~ 4 秒の間に制御されます。最適化を続けるにはどうすればよいですか?

3 番目のステートメント: データ結果セットのクエリ

リーリー

mysql 8000+ のページネーションで任意のページをクリックすると、応答が 3 ~ 4 秒の間に制御されます。最適化を続けるにはどうすればよいですか?

分析を手伝ってください...

返信内容:

採用された最適化手法:

  1. 制限の最適化。最初にページングに対応する ID を取り出し、次にフィールド の値に基づいて、次に制限

  2. インデックス

  3. ミイサムエンジン

添付コード:
クエリデータ総数:

mysql 8000+ のページネーションで任意のページをクリックすると、応答が 3 ~ 4 秒の間に制御されます。最適化を続けるにはどうすればよいですか?

下の図は、クエリページングに対応するIDを示しています:

mysql 8000+ のページネーションで任意のページをクリックすると、応答が 3 ~ 4 秒の間に制御されます。最適化を続けるにはどうすればよいですか?

下の写真はクエリ結果です:

mysql 8000+ のページネーションで任意のページをクリックすると、応答が 3 ~ 4 秒の間に制御されます。最適化を続けるにはどうすればよいですか?

--------------2016.7.6 17:47更新----------------------
あそこは本当にあるべきだったあなたがそれを望んでいるなら、それはすでに解決されています、あなたがそれを望まないなら、あなたはもうそれを望まないでしょう。 コード図も更新されました。応答を2.5秒

未満に抑えることができるようになりました。

実行計画は次のとおりです: これは最初のステートメントです、クエリデータの総量

リーリー

mysql 8000+ のページネーションで任意のページをクリックすると、応答が 3 ~ 4 秒の間に制御されます。最適化を続けるにはどうすればよいですか?
2番目のステートメントページングの最初のフィールドIDをクエリします

リーリー

mysql 8000+ のページネーションで任意のページをクリックすると、応答が 3 ~ 4 秒の間に制御されます。最適化を続けるにはどうすればよいですか?

3 番目のステートメント: データ結果セットのクエリ

リーリー

mysql 8000+ のページネーションで任意のページをクリックすると、応答が 3 ~ 4 秒の間に制御されます。最適化を続けるにはどうすればよいですか?

分析を手伝ってください...

SQLと実行計画を投稿していただけますか

トランザクションで実行すると効率が向上します

1. まずテーブル接続クエリを単純なクエリに分割します
2. いいねする必要がありますか?

3 sql の概要:

1. SQL の総量、samplerecord はインデックスを使用しない、フルテーブルスキャン、必然的に遅くなります
2. クエリ ID の SQL、ソート + フルテーブル、それは遅くなることが予想されます
3.わかりました

つまり、完全なテーブルデータが本当に必要な場合、制限はそれほど遅くなりません。
最終的な推測は、code!='' 条件が高度にフィルタリング可能である、つまり、そのような条件が多数あるため、フィルタリングが遅くなるということです。インデックスを追加してみてください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。