获取表行计数的最有效方法

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (13)

我目前拥有超过600万行数据库并且在不断增长。我目前做SELECT COUNT(id)FROM table; 为了向我的用户显示数字,但数据库变大,我不需要存储所有这些行,除了能够显示数字。有没有办法选择要显示的auto_increment值,以便我可以清除数据库中的大部分行?使用LAST_INSERT_ID()似乎不起作用。

提问于
用户回答回答于

如果只是为了获取记录(行)的数量,我建议使用:

SELECT TABLE_ROWS
FROM information_schema.tables 
WHERE table_name='the_table_you_want' -- Can end here if only 1 DB 
  AND table_schema = DATABASE();      -- See comment below if > 1 DB

(至少对于MySQL而言)。

用户回答回答于

下面是查找下一个最有表现力的方法AUTO_INCREMENT表的值。即使在包含数百万个表的数据库中,这也是快速的,因为它不需要查询潜在的大型表。information_schema数据库。

mysql> SHOW TABLE STATUS LIKE 'table_name';
// Look for the Auto_increment column

但是,如果必须在查询中检索此值,则必须在information_schema数据库。

SELECT `AUTO_INCREMENT`
FROM   INFORMATION_SCHEMA.TABLES
WHERE  TABLE_SCHEMA = 'DatabaseName'
AND    TABLE_NAME   = 'TableName';

扫码关注云+社区