日期:2014-05-19  浏览次数:20421 次

这句SQL如何优化
id   parentid
1     1
1     2  
------------
我现在只要  
id   parentid
1     1
-----------------
select   count(1)   from   order   where   id=parentid
但是这样   做count(1)   求和   逻辑读很高  
是建索引还改写SQL语句   发现用exists也逻辑读很高   该表有50万条记录


------解决方案--------------------
当然是建立索引, sql 语句没有什么好改的
------解决方案--------------------
一般来说, 逻辑读高些没有太大关系.

但索引是非常重要的, 例如楼主的查询, 如果建立 id, parentid 的索引, 则查询只需要扫描索引就出来结果了, 连原始的表都不用查. 而id, parentid 如果是 int 的话, 加起来才 8 字节, 一个索引而就可以放约 1000 条记录, 50W也就 500 页左右, 扫描起来还是比较快
------解决方案--------------------
恩,建索引就OK了,你这样的SQL语言不能再精简了