我目前有一个超过600万行的数据库,而且还在不断增长。我目前正在从表中选择COUNT(id);以便向我的用户显示数字,但是数据库越来越大,除了能够显示数字之外,我不需要存储所有这些行。有没有一种方法可以选择要显示的auto_increment值,以便清除数据库中的大多数行?使用LAST_INSERT_ID()
似乎行不通。
发布于 2009-06-01 04:37:23
如果仅仅是为了获取记录(行)的数量,我建议使用:
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)。
发布于 2010-04-05 07:38:18
下面是查找表的下一个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';
发布于 2009-07-10 12:07:53
尝尝这个
执行以下SQL:
SHOW TABLE STATUS LIKE '<tablename>'
并获取字段Auto_increment
的值
https://stackoverflow.com/questions/933565
复制相似问题