看这篇就够了Mysql的limit有

在删除数据的时候尽量加limit,这样不仅可以控制删除数据的条数,让操作更安全,还可以减小加锁的范围。

扫描行数

普通表情况下,mysql会扫描所有的数据,然后把匹配的数据放到内存buffer中。假如数据量很大,扫描次数太多造成响应非常慢。这时候如果加上limit限制,在查到满足条数后就不会再继续往下扫描了。一般程序框架提供的方法不会自动加limit作为sql语句,虽然有提供获取单条数据的方法。所以在写sql的时候,还是建议加上limit,要多少条就写多少

间隙锁

删除数据或者更新数据时,innodb在默认事务隔离级别下会给查找到的行进行加next-keylock(包含行锁和间隙锁)。limit限制扫描行数,可以减少间隙锁的影响行数。




转载请注明:http://www.aierlanlan.com/rzfs/5480.html