mysql の or と in の効率を例を使って分析する

藏色散人
リリース: 2021-09-25 17:13:07
転載
2315 人が閲覧しました

mysql の or と in の効率を例を使って分析する

mysql における or と in の効率

まえがき

今日、Web サイトが停止するという問題に遭遇しました。数分後には、タイミング スクリプトで SQL を見つけましたが、実行効率が非常に遅いです。DBA が または に変更することを提案したところ、効率が何百倍も向上しました。

シーンの説明

1 2 つのテーブル関連付けクエリ
2.テーブル 1 のデータ量は 100 万に近いです
3.テーブル 2 のデータ量は 900 万に近いです
4.クエリ条件のタイトル フィールドはインデックス化されていません
5.元のクエリ文

SELECT a.id as id FROM `table1`as a left join table2 as b on a.id=b.id WHERE b.title="衣服" or b.title="裤子" or b.title="帽子" limit 0,100
ログイン後にコピー

6.変換後のクエリ文

SELECT a.id as id FROM `table1`as a left join table2 as b on a.id=b.id WHERE b.title IN ("衣服","裤子","帽子") limit 0,100
ログイン後にコピー

変換後の効率

元のSQL実行時間は5秒ですが、変更後は5秒のみです。 0.01秒かかるor の効率は O(n) ですが、in の効率は O(logn) ですが、n が大きくなると効率の差がより顕著になります。

推奨学習: 「

mysql ビデオ チュートリアル

以上がmysql の or と in の効率を例を使って分析するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!