如何使SQL中的COUNT*飞起来
发布时间:2021-11-01 19:42:41  所属栏目:大数据  来源:互联网 
            导读: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 秒时间 执行计划也简单,走了全表扫描                         (编辑:临夏站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
站长推荐
            
        
