首页 > 数据库 >MYSQL-幻读

MYSQL-幻读

时间:2023-05-09 09:45:56浏览次数:61  
标签:事务 快照 幻读 查询 MYSQL 数据 select

什么是幻读?

事务隔离级别为可重复读时,
幻读发生在当前读和快照读混合使用的情况下
select * from table,正常查询为快照读
select * from table for update, 或者insert,delete等为当前读

如果事务中仅存在快照读,则不会发生幻读的情况;
测试如下:
事务1中仅快照查询,则事务2提交事务后,事务2中插入的数据事务1依然查询不到,即快照读不存在幻读

事务1 事务2
开启事务 开启事务
select select 都查询不到数据
insert 都查询不到数据
select select 事务1查询不到,事务2查询到一条数据
事务提交
select 事务2提交事务后,事务1依然查询不到

当前读混合快照读,存在幻读;事务2提交后,快照读查询不到事务2的数据,当时当前读能查询到事务2的数据
,当前读发生后,再次执行快照读,则能查询到事务2的数据;即快照读是以事务中最新一次当前读为基础的

事务1 事务2
select select 都查询不到数据
insert 1
select 1 数据1查询不到
update 1 数据1不能被更新,因为事务2给数据1加了读锁,事务1超时
提交事务
update 1 事务2提交事务后,则事务1更新数据1成功
select 1 事务1查询到数据1

标签:事务,快照,幻读,查询,MYSQL,数据,select
From: https://www.cnblogs.com/raifujisann/p/17383949.html

相关文章

  • MySQL索引下推(官方翻译)
    索引条件下推优化原文链接:https://dev.mysql.com/doc/refman/8.0/en/index-condition-pushdown-optimization.html索引条件下推(ICP)是针对MySQL使用索引从表中检索行的情况的优化。如果没有ICP,存储引擎会遍历索引以定位基表中的行,并将它们返回给MySQL服务器,MySQL服务器......
  • Mac安装MySQL5.7开发环境的详细步骤
    1.进入官网下载MySQL5.7的安装包。下载地址:https://www.mysql.com/downloads/      跟着上面图示下载即可,我这里选择的是5.7.31的版本,根据个人喜好选择版本,但是注意有的版本是没有mac版本的,换个版本就行了。2.安装包下载完成后双击pkg文件进行安装,无脑点下一步......
  • Golang MySQL 操作
    1.  创建go_db目录      mkdirgo_db2. root@VirtualBox:/mnt/share/goframe/go_db#gomodinitgo_dbgo:creatingnewgo.mod:modulego_dbroot@VirtualBox:/mnt/share/goframe/go_db#goget-ugithub.com/go-sql-driver/mysqlgo:addedgithub.com/go-......
  • Mysql面试题
    1.Mysql基础1、from子句组装来自不同数据源的数据;2、where子句基于指定的条件对记录行进行筛选;3、groupby子句将数据划分为多个分组;4、使用聚集函数进行计算;5、使用having子句筛选分组;6、计算所有的表达式;7、select的字段;8、使用orderby对结果集进行排序。SQL语言不同......
  • MySQL主从
    MySQL主从一主从复制介绍1.1什么是主从复制将主服务器的binlog日志复制到从服务器上执行一遍,达到主从数据的一致状态,称之为主从复制。一句话表示就是,主数据库做什么,从数据库就跟着做什么。1.2为何要做主从(1)为实现服务器负载均衡/读写分离做铺垫,提升访问速度#1、什么......
  • MySQL面试手册
    面试手册1、你接触过哪几种数据库软件,各自的优缺点是什么?2、MySQLbinlog的几种日志格式有什么区别?3、MySQL的存储引擎有哪几种?4、MySQL主从复制原理是什么?5、MySQL中myisam和innodb的区别?6、字段类型varchar和char的区别是什么?varchar(50)中50代表什么?7、关系型数据库和非......
  • MySQL锁机制
    一数据库的锁机制什么是锁?为何要加入锁机制?锁是计算机协调多个进程或线程并发访问某一资源的机制,那为何要加入锁机制呢?因为在数据库中,除了传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供需要用户共享的资源。当并发事务同时访问一个共享的资源时,有可能导致数据不......
  • MySQL日志管理
    MySQL日志管理一日志分类日志种类作用错误日志记录MySQL服务器启动、关闭及运行错误等信息事务日志1、redolog重做日志2、undolog回滚日志查询日志记录所有的sql慢查询日志记录执行时间超过指定时间的操作,如果是全表查询,即便没有超时也会被记录下......
  • MySQL基本管理
    数据库基本管理一MySQL启动关闭流程mysql是一个典型的C/S服务结构1.mysql自带的客户端程序(/service/mysql/bin) mysql mysqladmin mysqldump2.mysqld一个二进制程序,后台的守护进程 单进程 多线程1.1启动数据库1、/etc/init.d/mysqldstart--->mysql.server--->......
  • debain11安装mysql报错一例
    W:GPGerror:http://repo.mysql.com/apt/debianbullseyeInRelease:Thefollowingsignaturescouldn'tbeverifiedbecausethepublickeyisnotavailable:NO_PUBKEY467B942D3A79BD29E:Therepository'http://repo.mysql.com/apt/debianbullseyeInRe......