![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
sql
文章平均质量分 59
外外外
这个作者很懒,什么都没留下…
展开
-
一条更新语句的执行流程——学习redo log两阶段提交
最近在整理之前学习的mysql知识,觉得看到的redo log两阶段提交的图都是流程图,不是交互图,太难记忆了,所以决定自己画一张以一条更新语句的执行流程来学习下redo log两阶段提交。update student set age=age+1 whre id=2;1.执行器:调用引擎接囗取id=2这一行2.引擎:数据页在内存中,返回,否则,先从磁盘读入内存,再返回3.执行器:拿到引擎给的行数据,把值加上1,得到新的一行数据4.执行器:调用引擎接口写入这行新数据5.引擎:将新行更新到内原创 2021-04-02 15:32:33 · 372 阅读 · 0 评论 -
使用explain分析sql语句————记一次优化
直接上sql,省略必要条件,在测试环境分析,数据较少,但依旧可看出问题:zl_transport_order 运单表,可理解为订单表,id为运单id,transport_order_no为运单号zl_package 包裹表,transport_order_id为运单id,transport_order_no为运单号EXPLAIN SELECT t1.* FROM zl_transport_order AS t1 JOIN zl_package AS t2 ON t1.id = t2.tra原创 2020-12-30 13:47:46 · 124 阅读 · 0 评论 -
一道很有趣的面试题——————SQL
今天去面试,有一道SQL题纠结了很久,可惜最后没能写对,回家就建表插数据来调试SQL,现在写出来,以让自己以后无聊时研究。 题目如下:客户每访问一次浏览器,就会向数据库B表中插入一条数据, 表结构如下 求依次显示IP,用户登录次数,用户点击次数. 当时看完一脸蒙逼,回家调试后才开好,现给出两种答案: 答案一: select access_ip,sum(num1),sum(num2)原创 2017-12-01 21:56:06 · 522 阅读 · 2 评论 -
mysql删除历史重复数据(保留最新的一条),并为字段加唯一键
偶尔遇到一张表里重复插入了了相同的数据,为了防止重复的数据,我们需要对历史数据进行清理(保留最新的一条),并且为字段加入唯一键。下面以pt_logistics_check(包裹验收表)为例,packageNo为包裹号,checkId为验收id(主键),一个包裹在验收时会向pt_logistics_check插入一条记录,故packageNo应该是唯一的。第一步:在删除历史数据前可先做一些数据的验证...原创 2018-06-27 11:05:13 · 2266 阅读 · 0 评论