检索表中记录计数的MySQL命令是什么?
发布于 2009-12-12 21:34:05
发布于 2016-09-15 01:03:05
因为没有人提到它:
show table status;列出所有表以及一些附加信息,包括每个表的估计行数。这就是phpMyAdmin用于其数据库页面的内容。
此信息在MySQL 4中可用,可能在MySQL 3.23太长时间的先验信息模式数据库中。
更新:
因为有反对票,我想澄清的是,显示的数字是对InnoDB和TokuDB的估计,对于MyISAM和Aria (Maria)存储引擎来说,这是绝对正确的。
行数。一些存储引擎,如MyISAM,存储确切的计数。对于其他存储引擎,例如InnoDB,该值是近似值,可能与实际值相差40%到50%。在这种情况下,请使用SELECT COUNT(*)来获得准确的计数。
这也是查看MySQL上的行数的最快方法,因为查询如下:
select count(*) from table;执行全表扫描,这可能是非常昂贵的操作,可能需要在大型高负载服务器上花费数小时。它还会增加磁盘I/O。
同样的操作可能会阻塞表以进行插入和更新-这只会在外来存储引擎上发生。
InnoDB和TokuDB可以使用表锁,但需要全表扫描。
发布于 2015-08-06 14:22:04
我们有另一种方法可以找出表中的行数,而无需对该表运行select查询。
每个MySQL实例都有information_schema数据库。如果运行以下查询,它将提供有关该表的完整详细信息,包括该表中的近似行数。
select * from information_schema.TABLES where table_name = 'table_name'\Ghttps://stackoverflow.com/questions/1893424
复制相似问题