MySQL 5.6,64位,RHEL 5.8
使用ORDER BY和LIMIT'row_count'(或LIMIT 0,'row_count')对大型表进行查询.如果'row_count'较大,那么结果集的实际计数将非常慢.
案例1:下面的查询非常快(没有'限制'):
mysql> SELECT * FROM syslog WHERE
(ReportedTime BETWEEN '2013-11-04' AND '2013-11-05') AND
Priority<3 AND Facility=1 ORDER BY id DESC;
+---
| ...
6 rows in set (0.01 sec)
Run Code Online (Sandbox Code Playgroud)
情况2:下面的查询也很快('LIMIT 5'):
mysql> SELECT * FROM syslog WHERE
(ReportedTime BETWEEN '2013-11-04' AND '2013-11-05') AND
Priority<3 AND Facility=1 ORDER BY id DESC LIMIT 5;
+---
| ...
5 rows in set (0.42 sec)
Run Code Online (Sandbox Code Playgroud)
情况3:下面的查询非常慢('LIMIT 7',可以使用任何'row_count'值> 6):
mysql> SELECT * FROM syslog WHERE
(ReportedTime BETWEEN '2013-11-04' AND …Run Code Online (Sandbox Code Playgroud)