网站建设 江苏,微网站 手机网站,wordpress 翻墙,在线做试卷网站在业务场景要求高的数据库中#xff0c;对于单条删除和更新操作#xff0c;在 delete 和 update 后面加 limit 1 绝对是个好习惯。比如#xff0c;在删除执行中#xff0c;第一条就命中了删除行#xff0c;如果 SQL 中有 limit 1#xff1b;这时就 return 了#xff0c;… 在业务场景要求高的数据库中对于单条删除和更新操作在 delete 和 update 后面加 limit 1 绝对是个好习惯。比如在删除执行中第一条就命中了删除行如果 SQL 中有 limit 1这时就 return 了否则还会执行完全表扫描才 return。效率不言而喻。
好处
1. 降低写错 SQL 的代价就算删错了比如 limit 500, 那也就丢了 500 条数据并不致命通过 binlog 也可以很快恢复数据。
2. 避免了长事务delete 执行时 MySQL 会将所有涉及的行加写锁和 Gap 锁间隙锁所有 DML 语句执行相关行会被锁住如果删除数量大会直接影响相关业务无法使用。
3. delete 数据量大时不加 limit 容易把 cpu 打满导致越删越慢。