站长网 大数据 如何使SQL中的COUNT*飞起来

如何使SQL中的COUNT*飞起来

COUNT(*)是每个初学者的最爱,但凡漂亮的按下回车时,看着转啊转的进度条,总是有种莫名的喜感。平时总被老板催着干这干那,现在我也能指挥下电脑帮我跑跑数据!虽说平时面试官总爱问 COUNT(*) 有什么坏处啊,为什么要避免使用 COUNT(*) 这类怪问题。真要说

COUNT(*)是每个初学者的最爱,但凡漂亮的按下回车时,看着转啊转的进度条,总是有种莫名的喜感。平时总被老板催着干这干那,现在我也能指挥下电脑帮我跑跑数据!

 

虽说平时面试官总爱问 COUNT(*) 有什么坏处啊,为什么要避免使用 COUNT(*) 这类怪问题。真要说起来,他们也是一脸懵圈,因为面试题都有可能是网上随便摘的。

 

至于原理,多少人真正懂呢,真正在乎呢?

 

那么,COUNT(*)的性能真那么差吗?怎么才能提高性能呢!今天就盘它

 

已知 SQL Server 中有这样张表 (其他数据库也适用):

 

CREATE TABLE [dbo].[MobileLink]( 

 [user_id] [varchar](50) NULL, 

 [item_id] [varchar](50) NULL, 

 [behavior_type] [varchar](50) NULL, 

 [user_geohash] [varchar](50) NULL, 

 [item_category] [varchar](50) NULL, 

 [time] [varchar](50) NULL 

笨拙的堆表(Heap Table)

这张表没有索引,是张堆表(Heap Table). 总共有4000多万条数据。

 

第一次,运行 count(*)

 

SELECT COUNT(*) AS CNT  

FROM dbo.MobileLink 

 

 

可以看到运行大约花了 3 秒时间 执行计划也简单,走了全表扫描

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/shuju/2021/1101/17866.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部