ホームページ  >  記事  >  データベース  >  Union と in を使用するのはどちらが効率的ですか?

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

一个新手
一个新手オリジナル
2017-09-30 10:17:313108ブラウズ

いつも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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。