0

我有一个大(60+ 百万条记录)表。该表有一个主键(id、auto_increment、index id)

我有一个从该表中选择记录的报告。为了浏览和浏览这份报告(用 PHP 编写),我使用了分页脚本。

此脚本使用 SELECT COUNT( ) 来获取此表中的记录总数。SELECT COUNT( ) 非常慢。

问题: 我可以查询统计表中的基数字段 information_schema DB where table_name = my_large_table_name and column_name = id and(or) index_name is the index name of my auto_incremented id 然后使用结果作为分页脚本中的总行数?

更新:

或者我可以查询表中的TABLE_ROWS字段,以获取表中行的总数?结果准确吗?TABLESinformation_schema

该表使用 InnoDB 引擎。

4

1 回答 1

1

听起来像一个 innodb 表,其中行数没有被缓存,因此必须计算。

表格统计数据也不太可能准确:

对于其他存储引擎,例如 InnoDB,这个值是一个近似值,可能与实际值相差 40% 到 50%。 http://dev.mysql.com/doc/refman/5.1/en/show-table-status.html

你见过SQL_CALC_FOUND_ROWS吗? http://dev.mysql.com/doc/refman/5.0/en/information-functions.html

于 2012-10-04T22:29:02.437 回答