“和”之间有什么区别吗;限制10“;及;限制100“;在mysql中,只有一条记录存在?

“和”之间有什么区别吗;限制10“;及;限制100“;在mysql中,只有一条记录存在?,mysql,sql,Mysql,Sql,如标题所示,如果表中只有一条记录,则两个查询是否相同: select * from table limit 10; select * from table limit 100000; 谢谢。不要设置限制,因为它限制了屏幕上显示的记录,所以请尽量避免,如果将来您想获取更多记录,这会给您带来问题。另外,如果您希望查询速度更快、效率更高,请根据您的要求在页面中显示使用限制编号我不知道限制在mysql中的实现情况,但基于以下链接,我认为如果查询返回的值小于限制,则不会有任何区别 这不会影响最终结果,

如标题所示,如果表中只有一条记录,则两个查询是否相同:

select * from table limit 10;

select * from table limit 100000;

谢谢。

不要设置限制,因为它限制了屏幕上显示的记录,所以请尽量避免,如果将来您想获取更多记录,这会给您带来问题。另外,如果您希望查询速度更快、效率更高,请根据您的要求在页面中显示使用限制编号

我不知道限制在mysql中的实现情况,但基于以下链接,我认为如果查询返回的值小于限制,则不会有任何区别


这不会影响最终结果,但如果您知道只有一条记录,则最好不要使用limit,因为如果将limit设置为100,它将在内存中保留额外的99个指针

在这种情况下设置限制不会影响最终结果。但是您应该知道,在查询中设置限制确实会影响查询的性能。

我没有研究过
mysql
,但是在
Postgresql
的上下文中,存在差异,但没有太多需要考虑的地方。 您可以通过在查询前面加上
解释分析
,输出查询计划

=# EXPLAIN ANALYZE select * from table limit 10;
=# EXPLAIN ANALYZE select * from table limit 100000;
这将为您提供如下参数

  • 实际时间
  • 计划时间
  • 执行时间
  • 还有一些
mysql也可能有可用的东西。
我希望这会有所帮助

我从未见过
LIMIT
的源代码,但是是的,这两个查询的行为应该相同,因为在最后的限制步骤中,两种情况下只有一条记录。而且,从数据带宽的角度来看,这两种情况下的结果集大小也是相同的。如果查询结果估计器将结果大小估计为1(在这种情况下他肯定会这样),那么在查询优化过程中,该限制实际上将被忽略。在查询处理过程中,他会考虑限制,因为结果是一行,那么它也没有区别。注意,如果有超过100000条记录,那么我们不能保证查询1是查询2的子集。如果没有ORDERBY条款,LIMIT的吸引力有限。相反,您应该养成使用LIMIT的习惯,一旦您获得足够的记录,接收端将无法处理发送的数据量。对于前100条记录,您的限制为0,100,要获得下一个“页面”,您只需偏移限制100100调整页面大小以满足您的需要