在网上看到,count(1)比count(*)效率高,就在db2上试了下。使用了60多万条数据,环境为AIX,
表主键为符合主键。但仔细查看了执行计划,count(1)和count(*)耗费相同,求解。
------解决方案--------------------------------------------------------
显然这个说法不正确!
有些人想当然认为 select 1 .. 比 select * .. 效率高,就以为 select count(1) 也高。这是一错误的,其实类似的错误还有很多,经常可以在论坛中看到。
数据库本身会对SQL语句优化。 count(1), count(*) 对数据库来说是一样的。
------解决方案--------------------------------------------------------
count(1)比count(*)效率高,说这个的,是因为数据库会先把*替换成所需要的字段,(1)这样就节省了替换字段的时间,不过这个时间基本上可以忽略不记的。