文章目录
记录日常学习中的一些小知识
参考文档
https://www.cnblogs.com/shoshana-kong/p/10516404.html
基础知识
mysql 默认隔离级别
读未提交
,读已提交
,可重复读
,串行化四个
;默认是REPEATABLE-READ(可重读)
。
简单命令
查询mysql数据库隔离级别
SELECT @@tx_isolation;
设置当前会话隔离级别等级为读未提交
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
适用场景:比如代码中加断点调试的时候,在一个事务中,想看前面已经跑完的sql,可以在数据库执行这行命令,然后刷新数据库,就可以看到数据了。文章采摘自:bilibili谷粒商城p91章节
面试问题
binlog有几种格式?
OK,三种,分别是
- statement:记录的是修改SQL语句
- row:记录的是每行实际数据的变更
- mixed:statement和row模式的混合
为什么mysql选可重复读作为默认的隔离级别?
那Mysql在5.0这个版本以前,binlog只支持STATEMENT这种格式!而这种格式在读已提交(Read Commited)这个隔离级别下主从复制是有bug的,因此Mysql将可重复读(Repeatable Read)作为默认的隔离级别!