深聊MySQL,从入门到入坟之:MySQL竟然也有后悔药!!!
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竟然也有后悔药!!!相关推荐
- MySql的入门到入坟
系列文章目录 本章讲述Mysql的入门和使用. 文章目录 系列文章目录 前言 一.数据库设计分析 1. 软件开发周期 2. 设计数据库的步骤 3. 绘制E-R图 4. 数据库设计范式 二.MySql的 ...
- 从入门到入坟搭建FreeNAS服务器并配置NextCloud_NAS存储
从入门到入坟搭建FreeNAS服务器并配置NextCloud 2021-01-06 23:15:38 173点赞 963收藏 100评论 创作立场声明:本文所有商品皆自费购入,第一次发表文章,若有不当 ...
- canvas 从入门到入坟
文章目录 canvas 从入门到入坟 1. 概述 2. 使用场景 2.1 图表的绘制 2.2 canvas游戏 2.3 说明与作用 3. Canvas 入门 3.1 完成目标 3.2 初始化 3.3 ...
- FHQ-Treap(非旋treap/平衡树)——从入门到入坟
作者:hsez_yyh 链接: FHQ-Treap--从入门到入坟_hsez_yyh的博客-CSDN博客 来源:湖北省黄石二中信息竞赛组 著作权归作者所有.商业转载请联系作者获得授权,非 ...
- 【教程汇总+持续更新】Unity游戏开发从入门到入坟
新的一年,本该在年前整理的年终总结被拖到了年后开工.去年大量时间投入在Catlike教程的翻译上,截止目前位置,教程的进度已经完全追平原作者. 去年还有一部分是断断续续的更新SLG实战教程,但遗憾的是 ...
- 初阶指针---从入门到入坟
今天我们来见识一下c语言里让万千少年少女从入门到入坟的一道大门槛--指针 目录 1.指针是什么? 2.指针和指针类型 3.野指针 4. 指针运算 5. 指针和数组 6. 二级指针 7. 指针数组 1. ...
- 后端开发——Flask框架从入门到入坟(中)
前言 在上一篇文章中荔枝已经梳理了Flask的基础语法,但是想要靠这些东西来写一个项目是远远不够的噢,我们还需要一个更加清晰的项目逻辑来搭建一个Flask后端项目框架,在真实的项目开发中,我们还需要了 ...
- 我的linux学习之入门到入坟(二十二)-mysql基础(一)
交流群:692356620,有不同的问题或见解可以来群里讨论,或者私聊我qq:1251611916 文章目录 交流群:692356620,有不同的问题或见解可以来群里讨论,或者私聊我qq:125161 ...
- springboot入门到入坟
课程目录 导读:课程概览 第01课:Spring Boot开发环境搭建和项目启动 第02课:Spring Boot返回Json数据及数据封装 第03课:Spring Boot使用slf4j进行日志记录 ...
最新文章
- linux下的主要目录
- onnxruntime安装
- 删除计算机系学生的选课记录6,天津理工大学+数据库实验二.doc
- 细说firewalld和iptables
- oracle 树查询语句,oracle 树查询 语句
- 如何开发一个hexo主题_如何确定一个强烈的主题可以使产品开发更有效
- Windows Phone 如何振动手机?
- 操作系统之内存管理:4、基本地址变换机构(段氏、页式、段页式)
- 信息学奥赛C++语言:输出浮点数(1)
- 深度学习笔记(16) 误差分析(一)
- IIS 6.0 SSL证书安装
- 自学python能学成吗-没有任何编程基础可以直接学习python语言吗?学会后能够做什么?...
- 一道装呀(状压)DP
- Python进阶:如何将字符串常量转化为变量? 1
- 【TSP】基于matlab GUI改进的遗传算法求解旅行商问题【含Matlab源码 926期】
- 小米游戏本bios更新_小米笔记本13.3 8250U升级BIOS解决风扇异响
- 手把手教你拿到小世界里妹子的 QQ 号 !
- 怎样优化cocos2d/x程序的内存使用和程序大小
- Nuxt3 -- 组件 Components
- 化骨龙 GPS M80Pro 拆解
热门文章
- 线程篇2:[- sleep、wait、notify、join、yield -]
- 霸道小豆丁 用javascript简单写的判断电话号码
- 硬件速攻-ST7735 0.96LCD屏幕
- Talib指标公式及释义整理
- android面试(16)-数据库存储框架greendao
- 敏捷CSM认证:Scrum的定义
- “特步男相亲被拒”之后:国货岂能被diss!
- nexus离线私服maven-metadata.xml缺失导致jar包拉取失败
- 基于Django+Layui的组件化基础开发平台
- 看了这篇你肯定瘦 全身上下想瘦哪就瘦哪 - 生活至上,美容至尚!