MySQL面试题

作者: 红茶玛奇朵鸭 | 来源:发表于2019-08-17 19:54 被阅读22次

    文章的目的主要是针对面试官的提问,做出尽可能精简而全面的回答。若读者对某块的知识不能太理解,还请参阅其他大佬比较详细的博客或者专业书籍,谢谢大家。


    一.MySQL的存储引擎

            1.InnoDB:

            2.MyISAM:

            3.Memory:

            4.Archive:

    二、事务的ACID

            1.原子性(atomicity):一个事务必须视为一个不可分割的最小工作单元,整个事务中所有的操作要么全部提交成功,要么全部失败回滚,对一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性。

            2.一致性(consistency):事务前后数据的完整性保持一致。

            3.隔离性(isolation):一个事务所做的修改在最终提交以前,对其他事务通常是不可见的。

            4.持久性(durability):一旦事务提交,则其所做的修改就会永久保存到数据库中。此时即使系统崩溃,修改的数据也不会丢失。

    三、事务的隔离级别

            1.READ UNCOMMITTED (未提交读):一个事务可以读取另一个未提交事务的数据,这也称为脏读

            2.READ COMMITTED (提交读):一个事务要等另一个事务提交后才能读取数据。但会出现一个事务范围内两个相同的查询却返回了不同的数据,称为不可重复读。

            3.REPEATABLE READ (可重复读):在开始读取数据(事务开启)的时候,不允许修改操作。可重复读可以解决不可重复读问题。不可重复读对应的是修改即update操作,但是可能有幻读问题,因为幻读问题对应的是插入insert操作,而不是update操作。

            幻读:当某个事务在读取某个范围内记录时,另外一个事务又在该范围内插入了新的记录,当之前的事务再次读取该范围记录时,会出现换行。

            4.SERIALIZABLE (可串行化):最高的隔离级别,该级别下事务串行化顺序执行,可以避免脏读、不可重复读和幻读。但是效率低下,比较耗数据库的性能,会在读取的每一个行都加锁,所以会导致大量的超时和锁争用的问题。

    四、多版本并发控制(MVCC)解决幻读问题


    持续更新!!!!!觉得如果有帮助到你,麻烦评论喜欢加关注哟。

    相关文章

      网友评论

        本文标题:MySQL面试题

        本文链接:https://www.haomeiwen.com/subject/ckgqsctx.html