作者RedMapleWing (闇夜 枫)
看板Database
标题[SQL ] mysql执行效率问题
时间Fri Dec 30 13:54:45 2011
我有一段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
1F:→ LINGZ:1.别抓全部栏位(*),2.where & order by中的栏位加index 12/30 17:48
2F:→ LINGZ:第1点改程式,第2点改DB. 12/30 17:49
3F:→ danielguo:LIKE '%led%' 无法用index, 会 full table scan 12/30 18:40
4F:→ danielguo:你用 explain 显示就知道怎麽跑的 12/30 18:41