首页 > 数据库 >MySQL为什么使用可重复读隔离级别?

MySQL为什么使用可重复读隔离级别?

时间:2023-05-06 11:01:56浏览次数:35  
标签:set 隔离 level read isolation global MySQL 级别 transacton

历史原因:早期MySQL的binlog日志只有statement格式,在读已提交的隔离界别下,binlog日志存在bug,会导致主从复制不一致的情况。因此默认的隔离级别使用可重复读。

bug:binlog日志中记录的语句顺序和原有顺序会不一致。先删除后插入的操作,同步导从库就变成了先插入后删除的操作了。

MySQL5.1版本之后binlog日志格式还支持了row,mixed ,通常使用读已提交 + row 可以实现更高的并发。对于其中的幻读、不可重复读问题在业务层做保护即可。

binlog的statement模式不适合做主从复制。比如一些函数每次执行结果会不一致。uuid()等。

隔离级别设置和查询方式:

  • 当前session设置:
set session transacton isolation level read uncommitted;
set session transacton isolation level read committed;
set session transacton isolation level repeatable read;
set session transacton isolation level serializable;
  • 查询当前隔离级别
select @@global.tx_isolation isolation;
  • 全局设置
set global transacton isolation level read uncommitted;
set global transacton isolation level read committed;
set global transacton isolation level repeatable read;
set global transacton isolation level serializable;
  • 查询全局隔离级别
select @@global.tx_isolation isolation;

标签:set,隔离,level,read,isolation,global,MySQL,级别,transacton
From: https://www.cnblogs.com/wenshichen/p/17376604.html

相关文章

  • 由浅入深学MYSQL之--MySQL分组查询详解
    前言从今天开始本系列文内容就带各位小伙伴学习数据库技术。数据库技术是Java开发中必不可少的一部分知识内容。也是非常重要的技术。本系列教程由浅入深,全面讲解数据库体系。非常适合零基础的小伙伴来学习。全文大约【1066】字,不说废话,只讲可以让你学到技术、明白原理的纯......
  • MySQL执行计划
    explain查看执行计划在MySQL中如何知道一条sql到底有没有用到索引呢?MySQL提供了explain关键字来查询一条sql的执行效率。比如我们有一张user表:CREATETABLE`user`(`id`int(11)NOTNULLAUTO_INCREMENT,`userId`int(11)NOTNULL,`age`int(11)......
  • docker mysql error 1045 using password:yes
     错误截图  解决办法 找到mysql配置文件my.cnf 没有映射的话需要进入到MySQL的容器中找到/etc/下my.cnf文件在my.cnf中[mysqld]下添加skip-grant-tables容器里不能直接修改文件,需要安装相应的vim。下面通过dockercp拷贝文件进行修改#将容器中的文件拷贝......
  • MySQL----索引的创建、删除和查看
    1.索引作用  在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率。特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍。  例如,有3个未索引的表t1、t2、t3,分别只包含列c1、c2、c3,每个表分别含有1000行数据......
  • MySQL----数据库的安装、创建
    一、MySQL的安装。。。。。 二、MySQL实例的创建注意:停掉MySQL的服务(我的电脑---管理---服务) 如果实例一次创建不成功,第二次创建时会遇到如下错误:mysql安装出现errorNr.1045我们在windows下安装mysql时会出现Accessdeniedforuser'root'@localhost'(usingpassword:No)的问......
  • linux安装tomcat,mysql
    环境:centos7.6ssh连接工具:tabby安装tomcat创建目录mkdir/opt/tomcat获取tomcat:1.自己百度下载2.我这里提供百度网盘链接:https://pan.baidu.com/s/1wgLq5W8PCKFkgl_2IPh41A提取码:2du6上传注意:根据自己的ssh连接工具,下面我以tabby工具为例。右上角点击SFTP,鼠标......
  • MySQL:如何实现主从复制?
    简介MySQL主从复制是一个异步的复制过程,底层是基于MySQL数据库自带的二进制日志功能。指一台或多台MySQL数据库(从库,slave)从另一台数据库(主库,master)进行日志的复制、日志解析,最终实现从库数据与主库数据保持一致。 原理1、master将改变记录到二进制日志中。2、slave将mast......
  • linux 安装二进制mysql
    https://www.mysql.com/https://dev.mysql.com/downloads/社区版本https://downloads.mysql.com/archives/community/下载linux-genericproductversion5.7.20operatingsystemlinux-GenericosVersionLinux-Generic(glibc2.12)(x86,64-bit)CompressedTARArchi......
  • mysql8.0 使用navicat报caching_sha2_password' cannot be loaded解决方法
    安装8.0版本的mysql后,使用navicat连接时,报caching_sha2_password'cannotbeloaded的异常。原因为:8.0版本的mysq用户密码加密方式为caching_sha2_password,navicat暂不支持,需要修改下mysql的加密方式。解决过程:#(不建议用root进行连接)#1.登陆mysqlmysql-uroot-p#2.查看......
  • 《安富莱嵌入式周报》第311期:300V可调节全隔离USB PD电源,开源交流负载分析仪,CANFD Tra
    周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 视频版:https://www.bilibili.com/video/BV1Hh4y1H7dR1、运行速度1Hz木头材料晶体管https://liu.se/en/news-item/varldens-forsta-tratransistor研究人员设计并测试了第......