我的查询如下:
SELECT Brand,Id,Model FROM product
由于产品表的记录超过100万条,因此以秒为单位需要时间。
但查询会立即执行。 (不到一秒钟))
select count(*) as numberOfRows from (SELECT Brand,Id,Model FROM product) result
为什么?
答案 0 :(得分:0)
执行查询时,所用时间将根据列数和行数及其数据类型而有所不同。
在一个包含10列的表中,如果为所有记录选择所有列(*),为所有记录选择1或2列,则性能将不同。 因为在第二种情况下加载的数据量较少,所以执行速度会更快。
就像那样,当你说Count(*)时,结果只是一个单元格,而在你的第一个选择中,你为这3列选择了数百万行,所以数据量很高。
这就是为什么你更快地获得Count(*)结果的原因。你不需要在计数内给出*,而只需使用Count(1)来获得更好的性能。