USER_TABLE中的num_rows与 count(1)不一致的问题

本文探讨了数据库表中num_rows字段与使用count(1)查询结果不一致的现象,原因在于USER_TABLE表的更新不实时。当数据库表数据发生变化时,num_rows字段并未即时更新。通过分析表的LAST_ANALYZED时间,我们可以理解数据差异。为获取准确统计,应在查询前更新相关表信息,确保数据一致性。
摘要由CSDN通过智能技术生成

USER_TABLE中的num_rows与 count(1)不一致的问题

我们在USER_TABLE中查找一张表,有个num_rows字段,其注释是 The number of rows in the table ,就是说表中数据行数,但是我们用 count(1)去查询,发现两个数据并不一致(如下图),为什么呢?

这个是因为USER_TABLE是全局的表,记录了数据库所有数据表的信息,不可能随着每一个表的变动而更新,我们可以看 user_tables中有一个字段是 LAST_ANALYZED,这个就是这个表对这个数据最后一次更新时间,比如我们现在测试这个表是 7月 18日 采集的数据,而现在已经是8月1日了。

我们对更新时间进行排序,发现最后更新时间也是因表而已,所以每次统计之前,可以对该表进行更新一次,再次查询,我们发现数据就一致了,但是和之前查询出来的数据一致,这就是我刚才说的,在企业级数据库中,很多数据表都会更新很频繁的

OVER

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值