我的查询如下:
SELECT Brand,Id,Model FROM product
按几秒钟顺序为产品表具有超过100万条记录。
但是查询在不到时间内执行。(什至不到一秒钟)
select count(*) as numberOfRows from (SELECT Brand,Id,Model FROM product) result
为什么?
执行查询时,所花费的时间会根据列和行的数量及其数据类型而有所不同。
在您有10列的表中,如果您为所有记录选择所有列(*),则性能将有所不同,所有记录只有1或两个列。因为在第二种情况下,加载的数据量较小,因此执行速度更快。
这样,当您说计数(*)时,结果只是一个单元格,而在第一个选择中,您选择了这3列的数百万行,因此数据量很高。
这就是为什么您要更快地获得计数(*)结果。您不需要在计数内给予 *,而只需使用计数(1)即可获得更好的性能。