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

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