Union と in を使用するのはどちらが効率的ですか?

一个新手
リリース: 2017-09-30 10:17:31
オリジナル
3144 人が閲覧しました

いつもinの方が効率が良いと思っていたのですが、今回はちょっと迷ってしまいました。


SELECT * FROM runinfo WHERE status in (0,2,1,3,4,7,9,10);  
ログイン後にコピー

このクエリの効率は、多くの場合 1 秒を超えます。

mysql> SELECT * FROM runinfo WHERE status in (0,2,1,3,4,7,9,10);
ログイン後にコピー

106 rows in set (1.20 sec)

以下の記述方法に置き換えたところ、


SELECT * FROM runinfo WHERE status = 0
union
SELECT * FROM runinfo WHERE status = 1
union
SELECT * FROM runinfo WHERE status = 2
union
SELECT * FROM runinfo WHERE status = 3
union
SELECT * FROM runinfo WHERE status = 4
union
SELECT * FROM runinfo WHERE status = 7
union
SELECT * FROM runinfo WHERE status = 9
union
SELECT * FROM runinfo WHERE status = 10  
ログイン後にコピー

の効率が大幅に向上しました。

rreee

具体的な理由は言えませんが、ステータス フィールドにはインデックスが付けられており、このフィールドは更新される予定です。

最初に記録を作成し、後で理解します。

以上がUnion と in を使用するのはどちらが効率的ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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