首頁  >  文章  >  資料庫  >  使用union和in哪個效率高

使用union和in哪個效率高

一个新手
一个新手原創
2017-09-30 10:17:313141瀏覽

一直都認為是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  

效率有很大的提升。

mysql>
108 rows in set (0.02 sec)

 具體的原因我也說不上來,其中status字段有建索引,這個字段會有一些更新。

先做記錄,慢慢再搞清楚這件事情吧。

以上是使用union和in哪個效率高的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn