两个查询与一个查询的速度但限制输出

时间:2012-09-28 17:22:43

标签: mysql sql

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

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

有问题的表格最多可包含1百万行,查询中包含一行where = xxx,该列将被编入索引

2 个答案:

答案 0 :(得分:1)

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

SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name WHERE id > 100 LIMIT 10;
SELECT FOUND_ROWS();

答案 1 :(得分:0)

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