我正在运行一个查询,我需要知道表格中的总行数,但只需要显示前6行。
那么,运行select count(*)
然后select * ... limit 6
并返回打印数据会更快吗?或者,只是select *
没有限制,并在while循环中放置一个计数器打印结果?对于后者,我显然可以使用mysql_num_rows来获得总数。
有问题的表格最多可包含1百万行,查询中包含一行where = xxx,该列将被编入索引
答案 0 :(得分:1)
使用FOUND_ROWS()。这是一个例子:
SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name WHERE id > 100 LIMIT 10;
SELECT FOUND_ROWS();
答案 1 :(得分:0)
做两个查询。您的计数查询将使用索引,而不必扫描整个表,只扫描索引。第二个查询只需要从表中读取6行。