avatar

目录
线上高危 sql 语句

最近好像总和 sql 打交道,运维大神整理的 sql 相关规范值得很好的研读,今日特别记录一下“禁止”线上直接使用的 sql 语句。

【高危】禁用update|delete t1 … where a=XX limit XX; 这种带limit的更新语句。因为会导致主从不一致,导致数据错乱。建议加上order by PK。

【高危】禁止使用关联子查询,如update t1 set … where name in(select name from user where…);效率极其低下。

【强制】禁用procedure、function、trigger、views、event、外键约束。因为他们消耗数据库资源,降低数据库实例可扩展性。推荐都在程序端实现。

【强制】禁用insert into … on duplicate key update… 在高并发环境下,会造成主从不一致。

【强制】禁止联表更新语句,如update t1,t2 where t1.id=t2.id…。

文章作者: Viola Tangxl
文章链接: https://violatangxl.github.io/2020/04/06/dangerous-sql/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 椰子是只猫
打赏
  • 微信
    微信
  • 支付宝
    支付宝

评论