MySQL后悔药,防止看铁窗

  • 1、引言
  • 2、5种后悔药
    • 2.1 limit
    • 2.2 先测试后生产
    • 2.3 删除前,先备份
    • 2.4 删除前,先查询
    • 2.5 修改时, begin+commit
  • 3、 总结

1、引言

小屌丝:鱼哥, 请问,如何防止我手抖, 误删库。
小鱼:看样子你今天是来搞事情!
小屌丝:我就是为了防止自己手抖…颤抖…
小鱼:请问一个妹子去药店,问医师要"后悔药",知道是啥不?
小屌丝:额,鱼哥,果然是老司机啊, 你这要飙车了~
小鱼:扯淡, 我就是联想一下而已…而已…

扯远了,不过,别说,还真有后悔药,就是防止 删库, 蹲牢的那种。

今天我们来搞一搞 MySQL的后悔药

2、5种后悔药

2.1 limit

我们在执行delete 或者update操作时, 如果不是十**(被)(逼)(无)(奈)**,
还是在语句的最后,加上个 limit。防止 看铁窗

执行语句

delete from tesst_table where  username != '小明'  limit 100;

小明 从小就是明星。

好处

  • .降低写错SQL的代价

如果不添加limit,可能删除所有数据,如果添加limit,则指删除100条;

  • SQL执行效率提高

如果第一条就命中目标 return, 没有 limit 的话,还会继续执行扫描表

  • 避免了长事务

delete 执行时,如果 age 加了索引,MySQL 会将所有相关的行加写锁和间隙锁,所有执行相关行会被锁住,如果删除数量大,会直接影响相关业务无法使用。

  • 避免因为执行大数据量,把CPU顶满

如果你删除数据量很大时,不加 limit 限制一下记录数,容易把 CPU 打满,导致越删越慢的(小鱼就干过一次这事)

2.2 先测试后生产

以下三点,很重要:

  • 变更 SQL 操作先在测试环境测试,避免有语法错误就放到生产上了
  • 变更 SQL 操作需要写明详细操作步骤,尤其有依赖关系的时候,如:先修改表结构再补充对应的数据。
  • 变更 SQL 操作要有回滚方案,并在上生产前,review 对应变更 SQL。

2.3 删除前,先备份

为了防止看铁窗,咱们还是按规矩来:

修改或者删除数据,在执行sql前,一定要备份…备份…备份…

如果删数据, 不备份,想想都有啥后果:

  • 轻则 boss “指导” 你
  • 重则 牢头 “指导” 你

2.4 删除前,先查询

修改或者删除数据,在执行sql前,一定要where一下,确认是自己想要的,然后再delete 或者update

2.5 修改时, begin+commit

在执行SQL修改数据时, 建议 使用begin + commit事务的习惯

例子:

begin:update test_table set sort = 100000
where ext_name like '%小明';commit:

3、 总结

小屌丝:鱼哥, 有了这5种后悔药, 再也不怕自己手抖了
小鱼: 养成好习惯,不仅方便他人,还方便自己。
小屌丝:鱼哥, 那有没有MySQL 优化的内容呢?
小鱼: 有啊 ,难道你不记得,我专门写过这篇MySQL优化?

就是这篇《关于MySQL性能优化方式,这一篇就够!》。
而MySQL专栏,又包含:

  • SQL的基本用法一、二
  • SQL+Python定时备份
  • sql的去重方法
  • SQLyog快捷键使用总结
  • sql数据库中的 delete 与drop的区别
  • 深聊MySQL,从入门到入坟之:如何优化数据导入
  • 深聊MySQL,从入门到入坟之:如何让order by、group by查询速度飞起来

由于今天是农历腊月二十八,最后小鱼一句话总结这一年的搬砖感言:

退一步万丈深渊,进一步海阔天空!

深聊MySQL,从入门到入坟之:MySQL竟然也有后悔药!!!相关推荐

  1. MySql的入门到入坟

    系列文章目录 本章讲述Mysql的入门和使用. 文章目录 系列文章目录 前言 一.数据库设计分析 1. 软件开发周期 2. 设计数据库的步骤 3. 绘制E-R图 4. 数据库设计范式 二.MySql的 ...

  2. 从入门到入坟搭建FreeNAS服务器并配置NextCloud_NAS存储

    从入门到入坟搭建FreeNAS服务器并配置NextCloud 2021-01-06 23:15:38 173点赞 963收藏 100评论 创作立场声明:本文所有商品皆自费购入,第一次发表文章,若有不当 ...

  3. canvas 从入门到入坟

    文章目录 canvas 从入门到入坟 1. 概述 2. 使用场景 2.1 图表的绘制 2.2 canvas游戏 2.3 说明与作用 3. Canvas 入门 3.1 完成目标 3.2 初始化 3.3 ...

  4. FHQ-Treap(非旋treap/平衡树)——从入门到入坟

    作者:hsez_yyh 链接: FHQ-Treap--从入门到入坟_hsez_yyh的博客-CSDN博客 来源:湖北省黄石二中信息竞赛组        著作权归作者所有.商业转载请联系作者获得授权,非 ...

  5. 【教程汇总+持续更新】Unity游戏开发从入门到入坟

    新的一年,本该在年前整理的年终总结被拖到了年后开工.去年大量时间投入在Catlike教程的翻译上,截止目前位置,教程的进度已经完全追平原作者. 去年还有一部分是断断续续的更新SLG实战教程,但遗憾的是 ...

  6. 初阶指针---从入门到入坟

    今天我们来见识一下c语言里让万千少年少女从入门到入坟的一道大门槛--指针 目录 1.指针是什么? 2.指针和指针类型 3.野指针 4. 指针运算 5. 指针和数组 6. 二级指针 7. 指针数组 1. ...

  7. 后端开发——Flask框架从入门到入坟(中)

    前言 在上一篇文章中荔枝已经梳理了Flask的基础语法,但是想要靠这些东西来写一个项目是远远不够的噢,我们还需要一个更加清晰的项目逻辑来搭建一个Flask后端项目框架,在真实的项目开发中,我们还需要了 ...

  8. 我的linux学习之入门到入坟(二十二)-mysql基础(一)

    交流群:692356620,有不同的问题或见解可以来群里讨论,或者私聊我qq:1251611916 文章目录 交流群:692356620,有不同的问题或见解可以来群里讨论,或者私聊我qq:125161 ...

  9. springboot入门到入坟

    课程目录 导读:课程概览 第01课:Spring Boot开发环境搭建和项目启动 第02课:Spring Boot返回Json数据及数据封装 第03课:Spring Boot使用slf4j进行日志记录 ...

最新文章

  1. linux下的主要目录
  2. onnxruntime安装
  3. 删除计算机系学生的选课记录6,天津理工大学+数据库实验二.doc
  4. 细说firewalld和iptables
  5. oracle 树查询语句,oracle 树查询 语句
  6. 如何开发一个hexo主题_如何确定一个强烈的主题可以使产品开发更有效
  7. Windows Phone 如何振动手机?
  8. 操作系统之内存管理:4、基本地址变换机构(段氏、页式、段页式)
  9. 信息学奥赛C++语言:输出浮点数(1)
  10. 深度学习笔记(16) 误差分析(一)
  11. IIS 6.0 SSL证书安装
  12. 自学python能学成吗-没有任何编程基础可以直接学习python语言吗?学会后能够做什么?...
  13. 一道装呀(状压)DP
  14. Python进阶:如何将字符串常量转化为变量? 1
  15. 【TSP】基于matlab GUI改进的遗传算法求解旅行商问题【含Matlab源码 926期】
  16. 小米游戏本bios更新_小米笔记本13.3 8250U升级BIOS解决风扇异响
  17. 手把手教你拿到小世界里妹子的 QQ 号 !
  18. 怎样优化cocos2d/x程序的内存使用和程序大小
  19. Nuxt3 -- 组件 Components
  20. 化骨龙 GPS M80Pro 拆解

热门文章

  1. 线程篇2:[- sleep、wait、notify、join、yield -]
  2. 霸道小豆丁 用javascript简单写的判断电话号码
  3. 硬件速攻-ST7735 0.96LCD屏幕
  4. Talib指标公式及释义整理
  5. android面试(16)-数据库存储框架greendao
  6. 敏捷CSM认证:Scrum的定义
  7. “特步男相亲被拒”之后:国货岂能被diss!
  8. nexus离线私服maven-metadata.xml缺失导致jar包拉取失败
  9. 基于Django+Layui的组件化基础开发平台
  10. 看了这篇你肯定瘦 全身上下想瘦哪就瘦哪 - 生活至上,美容至尚!