我想我已经知道答案了,但是...
给定以下3条MySQL语句:
SELECT SQL_CALC_FOUND_ROWS title FROM STUFF LIMIT 1000000, 1;
SELECT SQL_CALC_FOUND_ROWS title FROM STUFF LIMIT 1;
SELECT title FROM STUFF;这三种语言在性能上有显著差异吗?
发布于 2013-03-28 04:31:14
SQL_CALC_FOUND_ROWS需要遍历所有行来计算结果,因此1和2之间没有时间差(如果表中的行数少于1000000行,则第一个查询可能不会返回任何内容)
第三个查询将输出整个表,而不仅仅是计算它的行数。
发布于 2013-03-28 04:25:27
这取决于,如果您添加一个ORDER BY并对正在排序的列进行索引,那么它的速度会快得多。
这是因为它将在不扫描和排序完整结果集的情况下以方式执行。使用索引将产生索引范围扫描,该扫描将在生成所需数量的行时立即启动和停止。
https://stackoverflow.com/questions/15668660
复制相似问题