达梦数据库的count(*) 为什么那么快

        达梦数据库的count(*)操作是达梦数据库的一个独特特性,无论查询表的数据记录行数有多少,哪怕是亿级别的数据表,执行select count(*) 都能立即返回正确的结果。因为达梦数据库的count(*)操作不需要执行全表扫描,而只需要读取一个表行记录器。

        达梦的实时count(*)的原理很简单,系统内部为每个基表维护了一个内部8字节的计数器,每插入一行就加1,删除一行就减一。需要查询记录数的时候,直接读取这个计数器的值,所以无论表数据库规模有多大,查询返回永远是毫秒级。

       计数器的原理很简单,但是实现起来,还需要和数据库的事务系统机制匹配。一个事务在插入一行时,其可以看到count(*) 增加,但是在事务提交之前,其他事务是不能读取这个增加值。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值