mysql事务javagc面试

     2022-03-26     244

关键词:

忽略其他问题,直接上技术面试

你们公司服务器中配置Java GC是哪一种?

Java GC 一共分为四种,分别是

  • -XX:+UseSerialGC 串行垃圾回收器
  • -XX:+UseParallelGC 并行垃圾回收器
  • -XX:+UseConcMarkSweepGC 并发标记扫描垃圾回收器
  • -XX:+UseG1GC G1垃圾回收器

选择回答,并说明原因。

MYSQL有多种引擎,InnoDB 支持事务吗?原理是什么?

MySQL有如下中引擎:MyISAM、InnoDB(5.5后的默认引擎)、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。
InnoDB是支持事务的引擎

原理即如何实现事务,首先引出事务的四个隔离级别

  • read uncommitted 读未提交

事务中发生修改,在该事物提交之前,其他事务已经能读取的更改。脏读(Dirty Read).

  • read committed 读取提交

事务开始时,只能读取到其他事务已经提交的结果。

  • repeatable read 可重复读

在同一个事务中,多次去读到的结果是一样的。
但是避免不了幻读。幻读:当某个事务读取某个范围内的记录时,另外一个事务又在该范围内插入了新的记录。当之前的事务再次读取该范围时,会产生幻行(Phantom Row)。
Mysql 与其他数据库不同,在这个隔离级别上是避免了幻读的。

  • serializable 可串行化

强制事务串行化,彻底避免上面提到的 脏读、不可重复读、幻读问题。

其次是 ACID

A: 原子性(atomicity)
C: 一致性(consistency)
I: 隔离行(isolation)
D: 持久性(durability)

  • 但是事务是怎么保证ACID的呢?
    事务的实现是通过事务日志完成的。redo 日志、undo 日志、

A:InnoDB采用的是group commit的方式来保证原子性。
C:一致性是undo日志实现的。undo日志除了回滚作用之外, undo 实现MVCC,读取一行记录时,发现事务锁定,通过undo恢复到之前的版本,实现非锁定读取。
I:隔离行其实是通过lock实现,InnoDB有行锁、表锁
D:持久性在于日志

总结

1、redo log(事务日志)保证事务的原子性和持久性(物理日志)
2、undo log保证事务的一致性,InnoDB的MVCC也是用undo log来实现的(逻辑日志).
3、redo log中带有有checkPoint,用来高效的恢复数据.
4、物理日志记录的是修改页的的详情,逻辑日志记录的是操作语句. 物理日志恢复的速度快于逻辑日志.
感谢:http://blog.csdn.net/tangkund3218/article/details/47904021















面试官:说一下mysql事务隔离级别?

MySQL事务隔离级别是为了解决并发事务互相干扰的问题的,MySQL事务隔离级别总共有以下4种:READUNCOMMITTED:读未提交。READCOMMITTED:读已提交。REPEATABLEREAD:可重复读。SERIALIZABLE:序列化。1.四种事务隔离级别1.1READUNCOMMITTED读未提... 查看详情

面试官:说一下mysql事务隔离级别?(代码片段)

MySQL事务隔离级别是为了解决并发事务互相干扰的问题的,MySQL事务隔离级别总共有以下4种:READUNCOMMITTED:读未提交。READCOMMITTED:读已提交。REPEATABLEREAD:可重复读。SERIALIZABLE:序列化。1.四种事务隔离级... 查看详情

每日一问-常见mysql面试问题3

参考技术A什么是数据库事务,MySQL为什么会使用InnoDB作为默认选项?1.原子性(一个原子事务中的所有操作要么全部成功,要么全部失败)实现主要基于undolog(回滚日志)2.一致性(数据库总是从一个一致性的状态转换到另一个一... 查看详情

mysql面试题积累(代码片段)

MySQL什么是事务,MySQL是如何支持事务的?事务就是一段sql语句的批处理,但是这个批处理是一个原子,不可分割,要么都执行,要么回滚(rollback)都不执行。事务具体四大特性,也就是经常说的ACID:1.原子性(所有操作要么全... 查看详情

理解完这些基本上能解决面试中mysql的事务问题(代码片段)

...于:和update操作产生的undolog因为insert操作的记录,只对事务本身可见,对其他事务不可见。故该undolog可以在事务提交后直接删除,不需要进行purge操作,而Delete操作在事务中实际上 查看详情

mysql面试总结

MySQL面试总结#MySQL的存储引擎`MyISAM`(默认表类型):非事务的存储引擎,基于传统的`ISAM`(有索引的顺序访问方法)类型,是存储记录和文件的标准方法,不是事务安全,不支持外键,适用于频繁的查询。表锁,不会出现死锁... 查看详情

redis┃面试官问我redis事务和mysql事务的区别,我

...便问,看我分分钟秒杀你)面试官:那你给我说说redis的事务和mysql的事务有什么区别吧我:额。。。事务还有区别????面试官:比如说redis的事务是不支持原子性和持久性的,包括他们的实现原理等方面也是有很大区别的。... 查看详情

面试,mysql搞透这20道就稳了(代码片段)

1.什么Mysql的事务?事务的四大特性?事务带来的什么问题?Mysql中事务的隔离级别分为四大等级:读未提交(READUNCOMMITTED)、读提交(READCOMMITTED)、可重复读(REPEATABLEREAD)、串行化(SE... 查看详情

事务特性(4道面试题)(代码片段)

问1:mysql事务主要用来做什么?处理操作量大,复杂度高的数据.学员管理,删除一个学员.要删除基本资料,学员相关信息,成绩,考核,会议等等.这些数据库操作语句就构成一个事务.问2:mysql事务使用要注意哪些?1.必须是InnoDB表引擎2.事务... 查看详情

[java复习]面试突击-mysql

MySQL几大部分:存储引擎、索引、事务、锁 MySQL的MyISAM和InnoDB存储引擎的区别是啥?myisam,不支持事务,不支持外键约束,索引文件和数据文件分开,这样在内存里可以缓存更多的索引,对查询的性能会更好,适用于那种少... 查看详情

面试官一口气问了mysql事务锁和mvcc,我

面试官:你是怎么理解InnoDB引擎中的事务的?候选者:在我的理解下,事务可以使「一组操作」要么全部成功,要么全部失败候选者:事务其目的是为了「保证数据最终的一致性」。候选者:举个例子&... 查看详情

mysql相关面试题目

一、事务的四大特性:  1)原子性(Atomicity):不可分割的操作单元,事务中所有操作,要么全部成功;要么撤回到执行事务之前的状态  2)一致性(Consistency):  3)隔离性(Isolation):事务操作之间彼此之间相互独... 查看详情

java面试——mysql相关(代码片段)

MySQL相关数据库基础什么是事务?事务的特性:(ACID)ACID实现原理事务隔离级别并发事务分类四种隔离级别X锁和S锁MVCCUNDO_LOG版本链ReadViewRRMVCC优缺点常用SQL语句为什么索引使用B+树为什么B+树高度就小,... 查看详情

java面试——mysql相关(代码片段)

MySQL相关数据库基础什么是事务?事务的特性:(ACID)ACID实现原理事务隔离级别并发事务分类四种隔离级别X锁和S锁MVCCUNDO_LOG版本链ReadViewRRMVCC优缺点常用SQL语句为什么索引使用B+树为什么B+树高度就小,... 查看详情

java进阶:mysql的事务隔离级别面试题

Part1微服务架构设计概述1.1传统应用架构的问题1.2微服务架构是什么1.3微服务架构有哪些特点和挑战1.4如何搭建微服务架构Part2微服务开发框架2.1SpringBoot是什么2.2如何使用SpringBoot框架2.3SpringBoot生产级特性Part3微服务网关3.1Node.js... 查看详情

面试官:什么是mysql事务与mvcc原理?(代码片段)

作者:小林coding图解计算机基础网站:https://xiaolincoding.com/大家好,我是小林。之前写过一篇MySQL的MVCC的工作原理,最近有读者在网站上学习的时候,评论区指出了一些问题。而这个知识点很重要,面试太... 查看详情

一文详解mysql事务底层原理,全是干货,推荐收藏

...入正题。面试官:看你简历上面写着精通MySQL,我先问你事务的特性是什么?老生常谈,这个还有谁不会背的吗?我: 查看详情

mysql面试题

...一个表中存在的另一个表的主键称此表的外键。2.数据库事务的四个特性及含义数据库事务transanction正确执行的四个基本要素。ACID,原子性(Atomicity)、一致性(Correspondence)、隔离性(Isolation)、持久性(Durability)。原子性:整个事务中的... 查看详情