使用union和in哪個效率高

一个新手
發布: 2017-09-30 10:17:31
原創
3143 人瀏覽過

一直都認為是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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!