ホームページ  >  記事  >  データベース  >  MySQL の複数テーブルの関連付けとソース コードの速度の比較分析

MySQL の複数テーブルの関連付けとソース コードの速度の比較分析

WBOY
WBOY転載
2023-06-02 13:49:061235ブラウズ

最初に結論について話しましょう

Where クエリと同等のクエリの結合速度は基本的に同じですが、非同等のクエリの結合は一般に遅くなります。

実験 1: 等しくないレコードはありません

member と member_class という 2 つのテーブルがあります。データ構造は次のとおりです。member.class_id と member_class.id は関連フィールドです

MySQL の複数テーブルの関連付けとソース コードの速度の比較分析

MySQL の複数テーブルの関連付けとソース コードの速度の比較分析

2 つのテーブルにそれぞれ 200,000 個のデータを書き込みました。そのうちの member.class_id が member_class.id に存在する必要があります (存在するわけではありません)。不等レコード)

完全なテーブルを確認してください

MySQL の複数テーブルの関連付けとソース コードの速度の比較分析

実験をより正確にするために、各結果を 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 つは基本的に同じであり、その差はほとんど無視できます。

実験 2: 等しくないレコードがあります

次に示すように、class_id の 20% のみが member_class.id に存在する新しい member_v2 テーブルを作成します。

MySQL の複数テーブルの関連付けとソース コードの速度の比較分析完全なテーブル テストのクエリを続けます:

MySQL の複数テーブルの関連付けとソース コードの速度の比較分析非常に明らかなギャップが見られます。 LEFT JOINの不等レコード数、NULL値が多数出現すると中間テーブルのクエリ効率が低下しますが、WHEREクエリを選択するとクエリ中に不等レコードを自動的にフィルタリングできます。

したがって、クエリ時間も高速になります。

以上がMySQL の複数テーブルの関連付けとソース コードの速度の比較分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。