The*_*ool 3 mysql sql limit offset
这可能是一个愚蠢的问题,但我只是对窗帘背后发生的事情感到好奇.
如果我想分页数据库记录,我可以使用LIMIT和OFFSET,或者只是获取所有记录,并使用更多代码推断我想要的记录.
我知道第二种选择绝对是愚蠢的,我只是想知道它是否更贵
如果我使用LIMIT和OFFSET将数据库抓住我要求的内容,或者将在内部获取与我的查询匹配的所有记录(甚至数十万),然后在内部使用起始索引(OFFSET)和结束索引(OFFSET + LIMIT) )获取所请求的记录子集?
我甚至不知道我是否用正确的词语来形容我所怀疑的,我希望有人可以解释一下.
谢谢!
是的,由于两个原因,它会更贵.
1)Mysql将在内部进行优化,仅计算所需的行,而不是在内部全部检索它们.请注意,如果在查询中有顺序,则此优化要少得多,因为mysql必须匹配并对数据集中的所有行进行排序,而不是在找到限制中的第一个X时停止.
2)当返回所有记录时,它们都需要通过线路从数据库传输到应用程序服务器.这可能需要一些时间,特别是对于中型到大型数据集.
| 归档时间: |
|
| 查看次数: |
1414 次 |
| 最近记录: |