ホームページ >バックエンド開発 >PHPチュートリアル >MySQL データベース内の特定のテーブル接続クエリが非常に遅いのですが、どうすれば最適化できますか?
2 つのテーブル間の接続クエリは非常に遅いですが、1 つのテーブルのみをクエリすると非常に高速になるか、他のテーブルの接続クエリも非常に高速になります。
クエリステートメント (クエリ時間は約 0.5 秒):
リーリーメンバーテーブル構造(約40,000データ):
リーリーギフトテーブル構造(約4000個のデータ):
リーリー2 つのテーブル間の接続クエリは非常に遅いですが、1 つのテーブルのみをクエリすると非常に高速になるか、他のテーブルの接続クエリも非常に高速になります。
クエリステートメント (クエリ時間は約 0.5 秒):
リーリーメンバーテーブル構造(約40,000データ):
リーリーギフトテーブル構造(約4000個のデータ):
リーリー
インデックスの最適化: g テーブルの Mid にインデックスを追加し、m のテーブルのステータスと wid にインデックスを追加します。インデックスが使用されているかどうかを確認するために、行数をできるだけ少なくするように努めます
インデックス作成
メンバーテーブルの(id,wid,wxid,wid_wxid)にインデックスを作成します
ギフトテーブルのインデックス(id,wid,mid,auth_wid,wxid)
一部のフィールドが where 条件に頻繁に出現する場合は、インデックスも作成する必要があります。
* 記号は使用しないでください: 必須フィールドのみを列挙してください
SQL リファレンス: SQL は私が直接書いたものであり、テストされていません
ギフトのmidフィールドの外部キーを作成し、メンバーテーブルのIDに関連付けます
データについてわからないことはありますか?
http://www.zhihu.com/question/37777220
実行計画を投稿してください
サブクエリを使用してインデックスを作成します。