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语言不能再精简了