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』,歡迎批評指正。

Advertisements

你可能會喜歡