程序员面试宝典之mysql数据库innodb引擎的4个隔离级别

author author     2023-05-11     602

关键词:

参考技术A 题目:请阐述Mysql Innodb引擎的4个隔离级别

难度:三星

面试频率:五星

这道题真的是一道数据库的高频题,数据库题除了索引的原理之外就是这道题的面试频率最高。

1.Read uncommitted(读未提交):,最低的隔离级别,可以一个事务读到其他事务没有提交的数据,也称脏读,这个隔离级别很少人用

2.Read committed(读已提交):相比于读未提交,这个隔离级别只能读到其他事物已经提交了的数据,这个隔离级别用得比较多。但是不是Mysql默认的隔离级别

3.Repeatable read(可重复读): 在读已提交隔离级别中,2次读取同一个变量如果其他事务修改了它的值,会读到的不一样。而在这个隔离级别中,顾名思义,一个事务开始读了。多次读到的值可以保证是一样的

4.Serializable 序列化 在这个隔离级别下,所有的事务都将串行操作,是隔离级别最高的也是效率最低的,很少人用

面试官追问:Innodb引擎默认隔离级别是哪个

答:可重复读

面试官追问:可重复读的实现原理

答:使用了MVCC多版本控制(类似乐观锁),Innodb引擎会给每一行数据加一个版本号信息,当一个事务修改一个数据时会增加它的版本号+1,当一个事务开始的时候会缓存下此时的版本号,后面读取的时候只会读取这个版本号的数据,因此别的事务提交了修改数据的版本号大于它,因此不会被读到

面试官追问:事务的隔离级别如何设置:

答:在Mysql命令行下调用命令 set global.tx_isolation,但这样Mysql重启失效,修改my.cnf来永久设置

面试官追问:可重读读有什么问题

答:会出现幻读,幻读是指事务读取到一个值无法准确继续后续操作。例如读取一个值,没有则插入,但是等插入的时候其他事务已经插入了,这就会导致插入失败,解决办法:sql语句显示加锁 :select xxxx for update,其他事务修改数据则会阻塞

mysql进阶之存储引擎

...[COMMENT字段n注释],)ENGINE=INNODB[COMMENT表注释]; 查询当前数据库支持的存储引擎:showengines;  2、InnoDBInnoDB是一种兼顾高可靠性和高性能的通用存储引擎,在MySQL5.5之后,InnoDB是默认的MySQL存储引擎。其主要特点有:  DML... 查看详情

面试相关

....Mysql索引原理https://www.jianshu.com/p/d90f6b028d0e 索引:索引是数据库管理系统中的一个排序的数据结构(通常使用B+Tree) Mysql引擎:Innodb和MyISAM,两种引擎的索引都是B+Tree数据 Innodb索引与MyISAM索引区别: a.Innodb索引是聚集索引,数... 查看详情

[2]java开发实习面试打卡(代码片段)

[1]Java开发实习面试打卡1.数据库三范式第一范式:如果每列(或者每个属性)都是不可再分的最小数据单元第二范式:如果一个关系满足第一范式,并且除了主键以外的其它列,都依赖于该主键第三范式:如果一个关系满足第二范式,并且... 查看详情

mysql进阶篇之mysql存储引擎

...将数据存储到文件系统之上。2.存储引擎简介存储引擎是数据库的核心,是基于表的,它是存储数据,建立索引,更新和查询数据等技术的实现方式。创建表的时候可以指定相应的存储引擎,MySQL支持多种存储... 查看详情

mysql之innodb存储结构

InnoDB,是MySQL的数据库引擎之一,现为MySQL的默认存储引擎,为MySQLAB发布binary的标准之一。InnoDB存储结构以页为单位来管理存储空间;以页作为磁盘和内存交互的基本单位;默认页大小为16kb(所以最少一次... 查看详情

java面试05|mysql及innodb引擎

 1、InnoDB引擎索引 InnoDB支持的索引有以下几种:(1)哈希索引(2)全文索引(1)B+树索引又可以分为聚集索引与辅助索引索引的创建可以在CREATETABLE语句中进行,也可以单独用CREATEINDEX或ALTERTABLE来给表增加索引。删除索... 查看详情

数据库面试葵花宝典

你目前接触的mysql版本是什么?除了官方版本,还接触过其他的mysql分支版本嘛?产生分支的原因许多开发人员认为有必要将其拆分成其他项目,并且每个分支项目都有自己的专长。该需求以及Oracle对核心产品增长缓慢的担忧,... 查看详情

myrocks之数据字典

...存储引擎,在存储引擎层,会维护自已的元数据信息。在innodb存储引擎中,我们通过information_schema下的INNODB_SYS_DATAFILES,INNODB_SYS_TABLES,INNODB_SYS_INDEXES等表,可以窥视innodb的元数据信息。同样,rocksdb通过information_schem 查看详情

mysql面试题之死锁

什么是死锁?锁等待?如何优化这类问题?通过数据库哪些表可以监控?死锁是指两个或多个事务在同一资源上互相占用,并请求加锁时,而导致的恶性循环现象。当多个事务以不同顺序试图加锁同一资源时,就会产生死锁。锁... 查看详情

mysql面试总结

...候,就导致了循环锁等待,常见的死锁类型。-解决办法1.数据库参数2. 查看详情

mysql之innodb存储引擎(代码片段)

innodb存储引擎一、mysql组织架构根据以上结构,详解如下1、连接层1.验证用户的身份,用户名密码是否匹配2.提供两种连接方式(TCP/IP连接、socket连接)3.连接层提供了一个与sql层交互的线程2、SQL层1.接收连接层传... 查看详情

面试提高及日常学习积累——数据库篇

这一篇主要讲mysql的一些积累和学习体会。一:数据库基础知识Innodb引擎Innodb引擎提供了对数据库ACID事务的支持,并且实现了SQL标准的四种隔离级别,关于数据库事务与其隔离级别的内容请见数据库事务与其隔离级别这篇文章。... 查看详情

2019面试宝典之.net

...。2、ADO.NET中的五个主要对象Connection:主要是开启程序和数据库之间的连接。没有利用连接 查看详情

[java复习]面试突击-mysql

...支持外键约束,高并发、大数据量、高可用等相关成熟的数据库架构,分库 查看详情

面试官:了解mysql的架构体系吗?

文章目录总览图客户端连接层服务层连接缓存解析器优化器执行器存储引擎层MyISAM与InnoDB引擎的区别如何在MyISAM与InnoDB存储引擎中进行选择?系统文件存储层数据文件日志文件(错误日志,binglog和慢查询日志)redolog文件redolog文... 查看详情

2022最新mysql面试题-有详细完整的答案解析(代码片段)

MySQL专题面试题MySQL中有哪些存储引擎?InnoDB存储引擎InnoDB是MySQL的默认事务型引擎,也是最重要、使用最广泛的存储引擎。它被设计用来处理大量的短期(short-lived)事务,应该优先考虑InnoDB引擎。MylSAM存储引擎在MySQL5.1... 查看详情

java面试技巧之mysql问题梳理

...中的主流选择MySQL的薪资待遇正在逐年增加,很多Java程序员在面试过程中也会被问及MySQL相关知识。接下来小千就给大家分析一下常见的MySQL面试内容。1、通用模块。此部分对MySQL整体概念、执行流程、数据库引擎、查询缓存... 查看详情

mysql五大引擎之间的区别和优劣之分

数据库引擎介绍MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的。要添加一个新的引擎,就必须重新编译MYSQL。在缺省情况下,MYSQL支持三个引擎:ISAM、MYISAM和HEAP。另外两种类型INNODB和BERKLEY(BDB),也常常可以使用。如... 查看详情