MySQL怎麼用in,or,union all(二)
上一次測試的為返回一條結果,本次測試返回多條結果。
測試表為用戶登錄日誌logs ,value1是我們要進行測試的查詢欄位條件
表數據的總條數
關閉緩存之後開始查詢每個查詢執行5次,每條查詢返回的條數
select count(*) from logs where value1 in(8090,8123);
select count(*) from logs where value1=8090 or value1=8123;
select * from logs where value1=8090 union all select * from logs where value1=8123
然後show profiles看執行時間
Advertisements
然後計算了一下5次平均用時
用in的平均用時 0.05864255
用or的平均用時 0.05369875
用union all的平均用時 0.0453645
總結:從用時間看,如果每個條件返回的結果多條的話,用union all 用時是最短的,用in用時最長。
另外再次聲明,情況複雜,條件千千萬,只能給大家一些參考,本結論是有理論依據的。但是也要看具體情況。還有各位技術大咖們,要噴,請拿出數據來說話。或者加微信號『xha911』,歡迎批評指正。