首页 > 数据库 >记一下mysql隔离级别问题

记一下mysql隔离级别问题

时间:2024-03-20 21:00:12浏览次数:36  
标签:事务 隔离 幻读 mysql 查询 插入 readview 级别

 

 

MSQL 默认隔离级别是    可重复读;  可重复读即  同一次 查询,再次查询结果一致;不会查询到别的事务提交的内容;

原理: 开始事务后,做一次select产生一个readview,这个readview已经确定了能读取的 undolog链;简单理解就是只能读取到当前事务版本之前的数据;当另一个事务插入数据后,事务版本已经领先了; 所以当当前事务再次 select的时候只能查询到之前readview的内容;

 

可重复读 不能解决幻读问题, 什么是幻读。 比如  现在  查询 数据 为 [1,2,3] ; 准备插入一条4记录(另一个事务插入了4记录);发现4记录插不进去; 这便是幻读,明明没有 为什么插入不进去。

标签:事务,隔离,幻读,mysql,查询,插入,readview,级别
From: https://www.cnblogs.com/yangxijun/p/18086071

相关文章

  • MySQL中如何快速定位占用CPU过高的SQL
    作为DBA工作中都会遇到过数据库服务器CPU飙升的场景,我们该如何快速定位问题?又该如何快速找到具体是哪个SQL引发的CPU异常呢?下面我们说两个方法。聊聊MySQL中如何快速定位占用CPU过高的SQL。技术人人都可以磨炼,但处理问题的思路和角度各有不同,希望这篇文章可以抛砖引玉。 以一......
  • 【数据库】MySQL表的增删改查(二)
    文章目录一、数据库约束一、数据库约束1.1约束类型NOTNULL-指示某列不能存储NULL值。UNIQUE-保证某列的每行必须有唯一的值。DEFAULT-规定没有给列赋值时的默认值。PRIMARYKEY-NOTNULL和UNIQUE的结合。确保某列(或两个列多个列的结合)有唯一标识......
  • mysql 1248错误 多级查询之别名
    【mysql解决方案】ERROR1248(42000):Everyderivedtablemusthaveitsownalias-CSDN博客 多级查询的过程中,会需要给表一个别名。代码错误的查询方式:select*from(selects.snofromstudentswheres.ssex='女');正确的查询方式:select*from(selects.sno......
  • w10下安装mysql8.0及dbeaver24记录
    1、首先到官网或者下载网站,下载mysql8.0的安装包,本次是从第三方下载网站下载的msi安装包,直接点开安装就行2、安装完后,参考https://blog.csdn.net/Javachichi/article/details/1327585513、然后下载安装dbeaver,安装好后配置连接mysql,其中自动下载mysql驱动时可能会报错,提示maven......
  • MySQL varchar详解
    ......
  • 深入浅出mysql索引
    了解mysql是一个关系型数据库,mysql默认的最大链接数为151,一条语句的执行过程主要为:词法解析->语法解析->预处理器->优化器->执行器,这么一个流程。oracle中的sql执行流程(了解),oracle中采用了共享池来判断sql中是否存在缓存和执行计划,通过这一步骤我们可以知道应当采......
  • Centos 7.5基于MySQL 5.7的 InnoDB Cluster 多节点高可用集群环境部署记录【转】
    前面给大家介绍过:MySQL高可用方案选型解析,今天我将详细的为大家介绍Centos7.5基于MySQL5.7的InnoDBCluster多节点高可用集群环境部署的相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发支持一波!!!MySQLInnoDBCluster介绍MySQL的高可用架构无论是社区还是官方,一......
  • 【MySql】SQLite和MySQL的区别
    SQLite和MySQL都是热门的关系型数据库管理系统,但是它们之间存在一些主要的差异:部署模式:SQLite是一个嵌入式数据库,它的所有数据都存储在一个单独的磁盘文件中,不需要安装数据库服务器,特别适合小型项目、桌面应用程序或者IoT设备等。MySQL是一个服务式数据库,需要设立专门的数据......
  • CentOS 7 使用RPM安装 MySQL5.7
    #下载RPM包https://downloads.mysql.com/archives/community/ #关闭并卸载之前安装的MySQL(没有则跳过)rpm-qa|grepmysqlrpm-e--nodeps要卸载的包#备份配置文件后删除mv/etc/my.cnf/etc/my.cnf.bakmv/var/lib/mysql/var/lib/mysql.bakmv/var/log/mys......
  • MySQL - 使用navicate连接虚拟机中linux的mysql
    1、首先在命令行中使用ifconfig命令查看虚拟机IP地址,这个地址是输入到navicat主机名中的。 2、查看window本地Telnet有没有选上;没有的话就勾选上。 3、虚拟机Linux防火墙设置 使用systemctlstopfirewalld命令关闭防火墙#检查Linux防火墙设置状态systemctlstat......