台灣最大程式設計社群網站
線上人數
1615
 
會員總數:246087
討論主題:189663
歡迎您免費加入會員
討論區列表 >> MySQL >> SQL優化問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
SQL優化問題
價值 : 500 QP  點閱數:1117 回應數:2
樓主

迷路
高級專家
11226 137
7595 1743
發送站內信

捐贈 VP 給 迷路
請問一下
兩個SQL式用EXPLAIN檢視
select_type都是SIMPLE,key都是同一張複合索引表(INDEX)
第一個SQL式的DATE欄位用LIKE查詢
type是ref,key_len是5,rows是1990
第二個SQL式的DATE欄位用>=和<=查詢
type是range,key_len是8,rows是30
以優化的角度來說,我應該選哪個?
目前查到的說法是type的ref優於range
可是第一個的rows卻比第二個的多上很多
key_len第二個比較長,應該是比較好吧?

搜尋相關Tags的文章: [ mysql ] , [ explain ] , [ 優化 ] ,
本篇文章發表於2020-04-10 16:38
1樓
作者回應

迷路
捐贈 VP 給 迷路 檢舉此回應
補充一下,DATE欄位是被使用的複合索引欄位之一
本篇文章回覆於2020-04-10 16:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

香帥
檢舉此回應
第二個SQL式的DATE欄位用>=和<=查詢是比較合適的作法,理由如下:
因為不論從易讀性或速度來說都會有比較好的性能
因為區間,大部分是用在日期,而LIKE用法通常是在姓氏或字串。
本篇文章回覆於2020-04-10 20:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.