[SQL ] MySQL Join 用法疑問
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 不是限制回傳的筆數嗎?這會關係到查詢效能?
另外小弟改寫成
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 而已不是嗎?
疑問很多,感謝各位
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.124.24.124
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 4 篇):