select * from XXX where .... limit 0,20
select * from XXX where .... limit 0,500
请问下,两者性能差别大吗?
求原理介绍
樱木花道没球孩:原因出在Limit的偏移量offset上,比如limit 100000,10虽然最后只返回10条数据,但是偏移量却高达100000,数据库的操作其实是拿到100010数据,然后返回最后10条。 那么解决思路就是,我能不能跳过100000条数据然后读取10条,而不是读取100010条数据然后返回10条数据。
楼主:谢谢回复,我问的是 从0到10 和 从0到500,的区别。(不存在“跳过“的情况)
樱木花道没球孩:一个拿50一个拿500,肯定有区别啊,数据越大越有区别。[坏笑]
楼主:性能差别大吗
樱木花道没球孩:慢查询日志啊,几百估计不大
艾森豪威尔:不大
小恶魔提利昂:网络好的话,500都到不了秒级
网易员工:你下载个1m的文件和下载个1g文件能一样不
程序猿.懒羊羊:老哥是从事数据库的开发吗?
樱木花道没球孩:百度的[坏笑][坏笑]
程序猿.少林弟子:20和500 相差不是太大
程序猿.懒羊羊:我去,好low啊
skrskr:自己压测下不就知道了
嵩山弟子:是百度low还是数据库开发low?[坏笑]
程序猿.懒羊羊:百度low啊
我不是王重阳:网络io
美团员工:m
欧鹏:20和500的差别不是很大,用explain看一下扫描了多少行不就知道了
荀攸:去你司估计可以当爸爸了吧
程序猿.浓浓安慕希:百度low,你又是什么牛鼻公司?应该还轮不到嘲讽百度吧
程序猿.昆仑弟子:不大 大概率都在同一个叶子结点上
上海寻梦信息技术有限公司员工:没区别
程序猿.懒羊羊:我去……
程序猿.懒羊羊:我说的是百度查东西low
程序猿.懒羊羊:[冷汗]
卓望信息技术(北京)有限公司员工:肯定有区别,数据量大,io次数就多,数据传输的时候也需要多次续传
程序猿.恶之花:大不大和你的sql,数据大小等都有关系啊
泰山弟子:那你咋没查出来呢
程序猿.懒羊羊:666
程序猿.懒羊羊:这也值得去说……
泰山弟子:嗯 月薪百万值得说
吃饭不想张嘴巴:数据库说:敢不敢整大点比较啊……
美团点评员工:没有很大性能差异
程序猿.懒羊羊:哈哈
拼多多员工:某些情况下会有较大区别,比如满足where条件的记录大于20小于500,但是索引命中的rows又比较多的时候,limit 20找到20条就会返回,而limit 500需要遍历完所有索引命中的行数
樱木花道没球孩:原因出在Limit的偏移量offset上,比如limit 100000,10虽然最后只返回10条数据,但是偏移量却高达100000,数据库的操作其实是拿到100010数据,然后返回最后10条。 那么解决思路就是,我能不能跳过100000条数据然后读取10条,而不是读取100010条数据然后返回10条数据。