mysql - 限制已知数量记录的性能

标签 mysql sql

假设我有一个简单的 select * from table;查询我事先知道有多少条目存在。假设是 100。

这三个调用之间有性能差异吗?
1) 从表中选择*;
2) 从表限制 100 中选择 *;
3) select * from table limit 1000;

每个调用都将返回 100 行。不同的限制值或没有限制值会影响调用的速度吗?

最佳答案

是和否。

没有 ORDER BYLIMIT 允许引擎传递任意行。但 LIMIT 越低,速度会更快——时间基本上与交付的行数成正比。

ORDER BY ... LIMIT ... 可能必须在传递某些行子集之前对整个表进行排序。因此,它可能比没有 ORDER BY 慢,甚至慢很多。

使用 ORDER BY 时,速度可能取决于您拥有的索引以及 WHERE 子句中的内容。

我的观点是——现实查询中会发生很多事情,对您的问题的一行答案实际上不会提供任何有用的信息。

关于mysql - 限制已知数量记录的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40181007/

相关文章:

php在设置准备语句的try block 中执行 undefined variable

mySQL UNION 错误

php - 将 unix_timestamp 插入 mysql 数据库

sql - 将 BACPAC 文件导入到 windows azure sql 数据库时发生内部错误

mysql - mysql 中的 ST_Distance_Sphere 没有给出两个位置之间的准确距离

php - 如何匹配选择查询中的字符串数组?

mysql - mysql内连接不明确

mysql - SQL 查询中的 SUM 字数

php - SQL 帮助 ~ GROUP_CONCAT

php - 哪种方法更好地验证用户凭据?