5分钟轻松应对 MySQL DBA 面试

做为DBA,从此可能都会遇到误删数据、服务器宕机,以及各类疑难故障问题,这些情况就跟屡见不鲜同样。面试

这个时节,你们都在忙着找工做,咱们就来总结一下MySQL DBA相关的技术面试题。数据库

01

问题1:你以前处理过MySQL的哪些案例?服务器

解答思路:说到案例,逃离不了MySQL的五大知识模块:体系结构、数据的备份恢复、复制、高可用集群架构和优化。咱们能够从这五个方向着手考虑,好比:session

①MySQL版本的升级;②处理集群架构中的各类“坑”和问题(你遇到过的就能够);③根据公司业务类型,合理设计MySQL库、表和后期架构;④按期进行灾备恢复演练;⑤恢复误删除的数据信息。数据结构

02

问题2:什么是死锁?锁等待?如何优化这类问题?经过数据库哪些表能够监控?架构

解答思路:死锁是指两个或多个事务在同一资源上互相占用,并请求加锁时,而致使的恶性循环现象。当多个事务以不一样顺序试图加锁同一资源时,就会产生死锁。学习

锁等待:MySQL数据库中,不一样session在更新同行数据时,会出现锁等待的现象。重要的三张锁的监控表:innodb_trx、innodb_locks和innodb_lock_waits。测试

03

问题3:MySQL主从复制的具体原理是什么?优化

解答思路:直接阐述原理便可,表达必定要清楚。操作系统

主服务器把数据更新记录到二进制日志中,从服务器经过I/O thread向主库发起binlog请求,主服务器经过I/O dump thread把二进制日志传递给从库,从库经过I/O thread记录到本身的中继日志中。而后再经过SQL thread应用中继日志中SQL的内容。

04

问题4:MySQL有哪些索引类型?

解答思路:能够从三个角度去谈。

首先从数据结构角度上能够分为B+tree索引、hash索引、fulltext索引(InnoDB、MyISAM都支持)。其次从存储角度上能够分为汇集索引和非汇集索引。最后逻辑角度上能够分为primary key、normal key、单列、复合和覆盖索引。

05

问题5:服务器负载太高或者网页打开缓慢,简单说说你的优化思路?

解答思路:咱们能够经过前面讲过的优化思路中的四维度模型去阐述。

首先要发现问题的过程,经过操做系统、数据库、程序设计、硬件角度四个维度找到问题所在。先找到瓶颈点的位置,制定好优化方案,造成处理问题的体系模型。体系制定好以后,在测试环境进行优化方案的测试。测试环境下若是优化效果很好,再实施到生产环境上。最后作好处理问题的记录。好记性不如烂笔头,多作总结,方可大步前进。

06

问题6:如何优化一条慢SQL语句?

解答思路:针对SQL语句的优化,咱们不要一上来就回答添加索引,这样显得太不专业。咱们能够从以下几个角度去分析:

①回归到表的设计层面,数据类型选择是否合理。

②大表碎片的整理是否完善。

③表的统计信息是否是准确的。

④审查表的执行计划,判断字段上面有没有合适的索引。

⑤针对索引的选择性,创建合适的索引(就又涉及大表DDL的操做问题。因此说,咱们要有能力把各个知识点联系起来)

07

问题7:为何要为InnoDB表设置自增列作主键?

解答思路:使用自增列作主键,写入顺序是自增的,和B+数叶子节点分裂顺序一致。InnoDB表的数据写入顺序能和B+树索引的叶子节点顺序一致时,存取效率是最高的。

暂时先总结到这里,更多MySQL DBA学习内容,能够来关注个人简书也能够直接加入咱们交流群:936903570

相关文章
相关标签/搜索