我目前有一个超过600万行的数据库,并且还在增长.我目前做SELECT COUNT(id)FROM table; 为了向我的用户显示该号码,但数据库变得越来越大,除了能够显示该号码之外,我不需要存储所有这些行.有没有办法选择要显示的auto_increment值,以便我可以清除数据库中的大多数行?使用LAST_INSERT_ID()
似乎不起作用.
Gra*_*wan 88
以下是查找AUTO_INCREMENT
表的下一个值的最高性能方法.即使在容纳数百万个表的数据库上,这也很快,因为它不需要查询可能很大的information_schema
数据库.
mysql> SHOW TABLE STATUS LIKE 'table_name';
// Look for the Auto_increment column
Run Code Online (Sandbox Code Playgroud)
但是,如果必须在查询中检索此值,则information_schema
必须转到数据库.
SELECT `AUTO_INCREMENT`
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'DatabaseName'
AND TABLE_NAME = 'TableName';
Run Code Online (Sandbox Code Playgroud)
Jam*_*ore 59
如果它只是关于获取我建议使用的记录(行)数量:
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
Run Code Online (Sandbox Code Playgroud)
(至少对于MySQL而言).
小智 29
试试这个
执行这个SQL:
SHOW TABLE STATUS LIKE '<tablename>'
Run Code Online (Sandbox Code Playgroud)
并获取字段的值 Auto_increment
doi*_*tin 17
我不确定为什么没有人提出以下建议.这将使用SQL获取auto_increment值(不需要使用PHP mysql_fetch_array
):
SELECT AUTO_INCREMENT FROM information_schema.tables WHERE TABLE_NAME = 'table'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
112636 次 |
最近记录: |