回覆列表
-
1 # TonyDeng
-
2 # 一米ymia
不同型別資料庫的場景和執行計劃都有區別,但從原理上來說,應該都差不多,sql語句中的between與等號寫法基本都是等價的
提供一個MySQL例項參考。
mysql版本:5.5.7
查詢語句
查詢1000張表,記錄為10000條,查詢包括= 三個條件
2.測試1
單個長連線,持續測試60s,關快取
2.1 <=,>=
2.2 between
2.測試2
單個長連線,持續測試60s,開快取
3.2 between
4.結論
between效能稍微不是很明顯多一些,這兩個語句應該是等價的,唯一的可能是<=,>=需要提供兩次整數引數,而between只需要一次引數,節省了查詢語句長度和傳輸資料大小。
SQL是查詢式語言,語句負責發出要求,具體實現演算法由資料庫實現,亦即不同資料庫的效率未必一樣,看實現者的能力和資料庫性質。就你所說的條件,這在底層實現上一定是要有索引才見效率的,所以庫表本身有沒有索引是關鍵,沒有要臨時建立,對前者,判斷有上下兩條邊界,兩個判斷環節,後者則只要一個,會稍微快點。