mysql元数据库】使用information_schema.tables查询数据库和数据表信息

本文介绍了当MySQL的InnoDB表中table_rows显示为0但实际含有数据的问题及解决方案。通过对表进行ANALYZE操作可以准确获取表中的行数。

http://www.cnblogs.com/ssslinppp/p/6178636.html

 

说说我自己的操作方式:SELECT *FROM INFORMATION_SCHEMA.`tables` 

WHERE `table_schema`= 'cachedb'
AND `table_rows`>0;

想用这个语句查出cachedb中所有的有数据的表的表名,但是发现有些表里面明明有数据,但是table_rows显示的是0,

上网查了资料,发现对于InnoDB表,table_rows行计数仅是大概估计值(http://www.netingcn.com/mysql-view-all-table-row.html),

想了很多其他方法都没有解决,后来我们老大给了一个方案。。瞬间被秒杀

对于这些统计不正确的使用表分析 ANALYZE TABLE cachedb.表名;

再查此表的table_rows即正确。记下这个方法,以后再用。

 

 

对了,要想看这种table_rows不正确的情况,楼主试了,感觉有点随机,就是各种创建数据库,创建表,插入数据,删数据就是不停的试到不正常的情况了再处理的

转载于:https://www.cnblogs.com/liu-shiliu/p/6795966.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值