数据库相关
文章平均质量分 53
s
黄子何
爱好篮球。
展开
-
UndoLog浅析
UndoLog基本Undo:意为撤销或取消,以撤销操作为目的,返回某个状态的操作。Undo Log: 数据库事务开始之前,会将要修改的记录放到Undo日志里,当事务回滚时或者数据库崩溃时,可以利用UndoLog撤销未提交事务对数据库产生的影响。Undo Log的产生和销毁: Undo Log在事务开始前产生; 事务在提交时,并不会立刻删除undo log,innodb会将该事务对应的undo log放到删除列表中,后面会通过一个后台线程purge thread进行回收处理。 Undo Log属于逻辑原创 2021-05-30 17:26:37 · 2236 阅读 · 0 评论 -
Binlog详解
Binlog详解https://www.bilibili.com/video/BV1tN411Z7iJ?p=3 视频地址使用场景① 主从复制 : 在主库中开启BInlog功能,然后主库将Binlog传给从库,从库拿到Binlog后实现数据恢复。② 数据恢复 :利用mysqlbinlog工具来恢复数据。或者binlog2sql工具③ 审计 (判断注入攻击)记录模式① Row: 日志中会记录每一行数据被修改的情况。优点: 清楚滴记录每一行数据的修改细节,可靠,可以完全实现主从数据数据同步和恢复原创 2021-05-30 17:24:36 · 1303 阅读 · 0 评论 -
Mysql not in的坑点
问题当not in (sql) ,如果sql查询是null指的话 最后结果会返回null举例:SELECT id,DefineSymbol FROM table1WHERE id NOT IN (SELECT DISTINCT ActionId FROM table2 )返回结果为null原因not in 的实现原理是,对每一个 t1.c1 和每一个 t2.c1(括号内的查询结果)进行不相等比较(!=)。而 SQL 中任意 !=null 的运算结果都是 false,所以如果 t2 中存在一原创 2021-05-26 21:13:43 · 550 阅读 · 0 评论 -
数据表开始时未建唯一索引的补救办法
数据表开始时未建唯一索引的补救办法业务场景在开始设计表时未添加唯一索引,在需求迭代过程中需要保证某些字段的唯一性,如果直接建立唯一索引,会报错。如果又想保留历史数据,又想在以后的数据插入时保证某些字段的唯一性,该怎么办呢?解决方案假设需要bc需要保证唯一性 <insert id="batchInsert"> insert into 表 (a, b, c ,d, e) values <foreach coll原创 2021-05-14 16:57:37 · 469 阅读 · 1 评论 -
刷Leetcode学sql
标题175. 组合两个表176. 第二高的薪水182. 查找重复的邮箱184. 部门工资最高的员工知识点汇总:175:LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。 右表没有记录的行会以NULL显示。176: 临时表的性质, IFNULL182: 查重可以用 group by XX having count(*)184: 元组可以多个字段 in 比如 (DepartmentId , Salary原创 2021-03-21 18:28:38 · 341 阅读 · 0 评论