Re: [SQL ] MySQL Join 用法疑問

看板Database作者 (獅子男)時間18年前 (2007/11/21 05:00), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)
※ 引述《gamewolf (Escape)》之銘言: : Mysql 4.1.22 : 今天小弟遇到怪怪的問題,想請教一下 : 我用 php 執行一個 sql 語法 : Select a.*,b.TestItem,d.sale From ProjSchedule a,ProjTestItem b , : correspondent d Where a.TestDate = '2007-11-20' and a.RelItemNo = b.ID : and d.co_number = SUBSTRING( a.CaseID, 1, 4 ) : 會讓 Mysql cpu 使用率高達 70 ~ 80%,差不多三十秒後才回應完成 : 回傳的資料筆數是 40 : 但使用 phpmyadmin 測試,只要不到 1s 就完成 : 後來發現是 phpmyadmin 加了 Limit,然後小弟跟著在自己的程式裡加 Limit : 疑,真快...Orz : Limit 不是限制回傳的筆數嗎?這會關係到查詢效能? 會! 很簡單的想法,LIMIT 塞滿了我就不繼續找下去了。 明顯案例:http://0rz.tw/f13iL 另外,這篇文章也有參考價值:http://0rz.tw/7f3kH : 另外小弟改寫成 : SELECT a. * , b.TestItem, d.sale FROM ProjSchedule a, ProjTestItem b : LEFT JOIN correspondent d ON d.co_number = SUBSTRING( a.CaseID, 1, 4 ) : WHERE a.TestDate = '2007-11-20' AND a.RelItemNo = b.ID : 這樣的話就很快,差不多 1s : 可是用 Left join 跟直接 From 起來,不是應該要一樣? : 差別只是在於 Left join 會把沒有資料的欄位填 Null 而已不是嗎? : 疑問很多,感謝各位 我猜... Select a.*,b.TestItem,d.sale From ProjSchedule a,ProjTestItem b , correspondent d Where a.TestDate = '2007-11-20' and d.co_number = SUBSTRING( a.CaseID, 1, 4 ) and a.RelItemNo = b.ID 會比你上面那個要花三十秒的還要快。 -- 我不寂寞, 因為煙在我口, 我不寂寞, 因為酒在我手, 我不寂寞, 因為還有寂寞陪著我. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.113.167.6 ※ 編輯: JoeHorn 來自: 59.113.167.6 (11/21 05:02)
文章代碼(AID): #17Gqha7n (Database)
討論串 (同標題文章)
文章代碼(AID): #17Gqha7n (Database)