作者gamewolf (Escape)
看板Database
标题[SQL ] MySQL Join 用法疑问
时间Tue Nov 20 17:45:22 2007
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