• 2
  • 2
分享

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种后悔药, 再也不怕自己手抖了

小鱼: 养成好习惯,不仅方便他人,还方便自己。


  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   JasperReports介绍  JasperReport是一个强大、灵活的报表生成工具,能够展示丰富的页面内容,并将之转换成PDF、HTML或者XML格式,该库完全由Java写出,可以用于在各种Java应用程序,非常适合Java开发者用来做报表生成。  基本使用指南  新建项目  首先选择模板,这里就直接选了普通的A4模板。  这里用来设置文件名字和文件路径。  这里是选择数据源,我这里已经事先创建好了数据库连接,在后续测试取数据的时候会用到。  这里就是JasperReport的主界面,首先介绍一下界面的五个主要区域:  区域1:选择数据源和项目;  区域2:用于展示报表的内容列表,报...
            0 0 946
            分享
          •   有一次,我在做一个web网站的压测时,总感觉并发上不去,后台,中间件包括网络等所有性能都是OK的,后来在排查前端时才发现,原来是图片加载速度过慢造成的瓶颈,如果我当初能对前端图片的性能优化多一些认知,那么可能排查起来就更加的丝滑了,所以作为测试人员,是很有必要了解前端图片的优化方法的,这也能提升你在开发心中地位。在当今数字化的世界中,无论是网页设计、移动应用开发,还是各种多媒体软件,图片都是不可或缺的元素。然而,图片的加载速度却常常成为影响用户体验的关键因素。  一、图片压缩   图片压缩是提升加载速度的首要手段。通过减少图片文件的大小,可以显著缩短加载时间,同时又能最大程度地保...
            0 0 656
            分享
          •   诺基亚今日推出新款 150 功能机,到手价 229 元。  诺基亚 150 手机搭载 2.4 英寸屏幕,九宫格键盘,后置 9 级独立外放扬声器;支持长按“#”键快速静音,可设置亲情号码一键呼叫。  该款新机内置 1450mAh 电池,支持 32GB 存储卡容量扩展;内置 FM 收音机,支持扬声器播放,也可连接 3.5mm 耳机收听;后置闪光灯,可长按方向“上”键开启。  外观方面,诺基亚 150 手机有红色、蓝色和黑色三种配色可选,外壳采用聚碳酸酯材质,据官方介绍整机可十年无污染,不褪色、更耐摔耐用。  该款诺基亚 150 手机仅支持移动 2G 网络,不支持联通和电信网络。目前诺基亚 15...
            0 0 831
            分享
          • 感谢各位小伙伴的关注和参与,本次51testing软件测试圈《寻找答题之星》问答活动就此结束。本次活动时间为2022年6月29日——2022年7月29日参与本次活动的用户总计8名,活动期间更新问答76条,其中添加“大佬养成计划”活动问答总计13条。详细活动数据如下:用户名称提问数量回复数量Carl_奕然020lee413饼干60橙子50彩虹糖507788101110眸10获奖名单恭喜:Carl_奕然获得优质测试技术图书一本;恭喜:lee获得优质测试技术图书一本。请获奖用户联系恬恬圈或甜甜圈领取奖励。活动主题寻找答题之星活动时间2022年6月29日——2022年7月29日活动邀请给大家科普一下鸭...
            9 9 3493
            分享
          • 读者提问:作为测试,如何跟不讲理的开发有效沟通?阿常回答:1、不要和这位比较轴、不讲理的开发人员单独正面沟通。2、要当着其他研发、测试和产品的面儿,比如我们可以在产研测微信工作群里,做相关内容的反馈。3、描述问题时附上截图、日志、链接等相关证据。4、必要时发邮件给干系人汇报当前工作情况,包括测试进展如何、当前遇到什么阻碍、阻塞任务的干系人是谁、问题不解决可能存在哪些风险。5、做到如上四点就差不多了,测试该做的都做了,证据也留了,责任在他那儿,相信他也会理性处理相关问题的。阿常碎碎念:今天登录知乎收到了这条邀请回答,说实话阿常在工作中很少遇到这样的开发人员。沟通能力是职场中非常重要的软技能,我们...
            0 0 1067
            分享
      • 51testing软件测试圈微信