1

我正在运行一个查询,我需要知道表中的总行数,但只需要显示前 6 行。

select count(*)那么,运行并select * ... limit 6返回打印数据是否更快?或者,只是select *没有限制并在 while 循环中放置一个计数器来打印结果?对于后者,我显然可以使用 mysql_num_rows 来获得总数。

有问题的表将包含多达 100 万行,查询包括一个 where row = xxx 该列将被索引

4

2 回答 2

1

使用FOUND_ROWS()。这是一个例子:

SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name WHERE id > 100 LIMIT 10;
SELECT FOUND_ROWS();
于 2012-09-28T17:27:39.790 回答
0

做两个查询。您的计数查询将使用索引,不必扫描整个表,只需扫描索引。第二个查询只需从表中读取 6 行。

于 2012-09-28T17:26:32.717 回答