为什么语句查询这么慢?加like后反而更快?
表neo_rea 250万行
flag字段主要有1,0,10三种,是int字段,有索引。主要是1,0和10很少。
com_id字段有索引
idate_unixTime 是unix时间,也是int型,有索引
id是聚集索引:
SQL语句:
SELECT top 12 p.[ID],p.[name],p.[code],p.price,p.[intro],p.img,p.[hits] as hits from neo_rea p where p.flag=1 and p.com_id=93303 order by p.idate_unixTime desc,p.id desc
执行要13秒!!
如果中间加上一个like,象这样
上述语句变成:SELECT top 12 p.[ID],p.[name],p.[code],p.price,p.[intro],p.img,p.[hits] as hits from neo_rea p where p.flag=1 and cpmc like '%细胞%' and p.com_id=93303 order by p.idate_unixTime desc,p.id desc
只需要1秒,虽然有like。可能是因为“细胞”出现频率高,不需要全表扫描。
请高手指点,这种语句,如何优化?