[SQL ] mysql執行效率問題

看板Database作者 (闇夜 楓)時間12年前 (2011/12/30 13:54), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/2 (看更多)
我有一段sql碼是這樣 SELECT a . * , b . * , c . * FROM comp_main AS a, comp_contact AS b, comp_index AS c WHERE a.briefIntro LIKE '%led%' AND b.main_sn = a.sn AND a.sn = c.comp AND ( c.rank = '3' OR c.rank = '4' ) ORDER BY c.rank ASC LIMIT 0 , 10 目的是在三張資料表中撈出廠商的資料 三張資料表的設計分別是 comp_main(廠商資料) comp_contact(廠商聯絡資訊) comp_index(所屬分類及層級) 本來在公司網站內部資料不多的時候撈都沒什麼問題 但近日新增了近2萬筆資料進去 就收到回報說搜尋系統掛掉了 實測後發現是這段程式碼餵給mysql後需要的執行時間非常的久 請問我是該改sql 還是往規劃搜尋的部份努力? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.243.133.251

12/30 17:48, , 1F
1.別抓全部欄位(*),2.where & order by中的欄位加index
12/30 17:48, 1F

12/30 17:49, , 2F
第1點改程式,第2點改DB.
12/30 17:49, 2F

12/30 18:40, , 3F
LIKE '%led%' 無法用index, 會 full table scan
12/30 18:40, 3F

12/30 18:41, , 4F
你用 explain 顯示就知道怎麼跑的
12/30 18:41, 4F
文章代碼(AID): #1E_L8eL- (Database)
文章代碼(AID): #1E_L8eL- (Database)