广泛被使用的关系型数据库管理系统(RDBMS)MySQL,常常在面试里被考查。下面要说的是一些常见的MySQL面试题跟其解答,所涉及面包含基础性知识、优化事宜、事务相关、索引方面等。
1. 基础知识
1.1 什么是 MySQL?
开源的关系型数据库管理系统(RDBMS)MySQL借助SQL(Structured Query Language)来实施数据管理,它对多用户、多线程予以支持,还具备高性能、可靠性以及易用性。
1.2 MySQL 的存储引擎有哪些?
MySQL 支持多种存储引擎,常见的包括:
1.3 什么是主键和外键?
1.4 SQL 语句的分类
2. 索引
2.1 什么是索引?
索引,是数据库里那种用来加速查询的数据结构,其类似书籍的目录,常见的索引类型包含:
2.2 索引的优点和缺点
2.3 如何创建索引?
2.4 什么是联合索引?
索引是对多个列所创建的联合索引,查询之际,唯有运用索引的最左前缀方可生效。
2.5 什么情况下索引会失效?
3. 事务
3.1 什么是事务?
事务属于一组具备原子性的操作性行为,存在两种情形,其一为全部达成成功状态,其二为全部陷入失败境地。事务拥有四大特性,分别是(ACID):
3.2 事务的隔离级别有哪些?
3.3 什么是脏读、不可重复读和幻读?
4. 优化
4.1 如何优化查询性能?
4.2 如何分析 SQL 语句的性能?
使用 EXPLAIN 命令分析 SQL 语句的执行计划:
4.3 什么是慢查询?如何优化?

慢查询是指执行时间超过阈值的查询。可以通过以下方式优化:
开启慢查询日志:
5. 其他常见问题
5.1 什么是视图?
视图,它是那种基于 SQL 语句的虚拟表,它不进行数据的存储,仅仅是存储查询定义,不仅能够简化复杂查询,而且还能提高安全性。
5.2 什么是存储过程?
由一组预编译的 SQL 语句所构成的存储过程,能够接受参数并返回结果,它适合用于封装复杂的业务逻辑。
5.3 什么是触发器?
触发器,是一种跟表有关联的数据库对象,它会在特定的事件,像是INSERT、UPDATE、DELETE发生之际,自动去执行。
5.4 如何备份和恢复数据库?
备份:
恢复:
6. 高级问题
6.1 什么是分区表?
把一个大表依照某种规则划分成多个小表,这就是分区表,它能够提升查询性能以及管理效率。
6.2 什么是死锁?如何避免?
死锁指的是,多个事务彼此等待着对方去释放锁,进而致使没办法持续执行。避免死锁的方法:
6.3 什么是读写分离?
其做法是把读的活儿和写的活儿,分到不一样的数据库服务器那儿去,目的在于提升性能以及可用性。
总结
面试题里关于 MySQL 的部分,包含了基础知识,还有索引方面,以及事务相关,另外有优化等诸多方面。把这些知识点掌握住,能够助力你在面试当中崭露头角。要是你存在更多问题,随时都欢迎你来提问!
Copyright © 2018 All Rights Reserved 版权所有 宁国人才网 苏ICP备2024139598号-6
地址:安徽省合肥市瑶海区 EMAIL:
Powered by PHPYun.