sql – 是否将COUNT(*)编入索引?

我想知道只是为了好奇,来自SoMetableName的Select Count(*)也会从SoMetableName中的Select *的所有行中遍历数据库的所有行?

或者数据库的元数据中是否有任何其他计数字段可以在每次添加删除行时自动更新?该字段由前一个查询访问.

另外我想知道两个查询哪一个更快,多少?

解决方法

SELECT Count(*)
FROM   SoMetableName

将始终计数所有行.虽然(不同于SELECT *),它不必读取所有列,并且可以使用可用的最窄(非过滤)索引.

MysqL(MyISAM引擎)不同,它不会从元数据中检索值.

元数据中有一个行计数值,可从sys.partitions检索,但这并不总是准确的.

相关文章

(一)日志传送架构 (1.1)相关服务器 主服务器 :用于生产的服务器,上面运行这生产SQL Server数据库...
(一)事故背景 最近在SQL Server 2012生产数据库上配置完事物复制(发布订阅)后,生产数据库业务出现了...
(一)测试目的 目前公司使用的SQL SERVER 2012高可用环境为主备模式,其中主库可执行读写操作,备库既...
(一)背景个人在使用sql server时,用到了sql server的发布订阅来做主从同步,类似MySQL的异步复制。在...
UNION和OR谓词 找出 product 和 product2 中售价高于 500 的商品的基本信息. select * from product wh...
datawhale组队学习task03