MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。一般中小型网站的开发都选择 MySQL 作为网站数据库。本文我们一起探讨面试中经常会遇到的相关面试题:
MySQL创建索引的原则有哪些?比如列值的区分度越高,索引越有效。
MySQL的主从复制原理是怎么样的?结合binlog介绍主从机如何实现复制。
MySQL中有哪些锁?共享锁、排它锁、间隙锁、next-key 锁
什么是悲观锁、乐观锁?基于mysql如何具体实现?
什么是一致性非锁定读?MVCC是什么?
事务隔离性都有哪些,MySQL默认是什么?
什么是脏读、幻读、不可重读读?结合事务隔离性分别说说哪些隔离级别具有哪些问题,如何解决?
undo 、redo日志都是干啥用的?事务的持久性和原子性是靠那个日志实现?那事务一致性那?
Spring中事务的传播性是什么?用来解决什么问题?都有哪些传播性?
MySQL索引使用了什么数据结构?B+树和B树什么区别?为何B+树适合做索引?
什么是一级索引、二级索引、联合索引,区别啥?覆盖索引是什么,相比二级索引有啥好处。
使用索引时候需要注意什么?
当读取大数据时候如何避免OOM?limit ?流式读取?
关于MySQL系统学习,推荐下面经典的书籍,原理讲解相当精致: