Where クエリと同等のクエリの結合速度は基本的に同じですが、非同等のクエリの結合は一般に遅くなります。
member と member_class という 2 つのテーブルがあります。データ構造は次のとおりです。member.class_id と member_class.id は関連フィールドです
2 つのテーブルにそれぞれ 200,000 個のデータを書き込みました。そのうちの member.class_id が member_class.id に存在する必要があります (存在するわけではありません)。不等レコード)
実験をより正確にするために、各結果を 20 回クエリします:
クエリ時間(秒):
0.253、0.256、0.256、0.252、0.257、0.252、0.260、0.265、0.253、0.252、0.254、0.257、0.254、0.257 、0.243、0.250、0.252、0.252、0.255、0.284
onクエリ時間の消費量は (秒):
0.247、0.260、0.250 、0.246、0.271、0.247、0.251、0.247、0.243、0.247、0.247、0.245、0.249、0.246、0.247、0.253、0.248、0.254、0.25 1、0.247、0 .250
where クエリの平均は 0.2557 秒、クエリの平均は 0.2498 秒で、この 2 つは基本的に同じであり、その差はほとんど無視できます。
次に示すように、class_id の 20% のみが member_class.id に存在する新しい member_v2 テーブルを作成します。
完全なテーブル テストのクエリを続けます:
非常に明らかなギャップが見られます。 LEFT JOINの不等レコード数、NULL値が多数出現すると中間テーブルのクエリ効率が低下しますが、WHEREクエリを選択するとクエリ中に不等レコードを自動的にフィルタリングできます。
したがって、クエリ時間も高速になります。
以上がMySQL の複数テーブルの関連付けとソース コードの速度の比較分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。