使用union和in哪个效率高

一个新手
Lepaskan: 2017-09-30 10:17:31
asal
3143 orang telah melayarinya

一直都认为是in的效率要高,但是这次确有点蒙圈。


SELECT * FROM runinfo WHERE status in (0,2,1,3,4,7,9,10);  
Salin selepas log masuk

这个查询的效率是,经常是1秒多。

mysql> SELECT * FROM runinfo WHERE status in (0,2,1,3,4,7,9,10);
Salin selepas log masuk

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  
Salin selepas log masuk

效率有很大的提升。

mysql>
108 rows in set (0.02 sec)
Salin selepas log masuk

 具体的原因我也说不上来,其中status字段有建索引,这个字段会有一些更新。

先做记录,慢慢再搞清楚这件事情吧。

Atas ialah kandungan terperinci 使用union和in哪个效率高. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!