找回密码
 立即注册
查看: 145|回复: 0

MySQL DBA相关技术面试题

[复制链接]

12

主题

14

回帖

82

积分

注册会员

积分
82
发表于 2022-9-13 20:43:35 | 显示全部楼层 |阅读模式
01
问题1:你之前处理过MySQL的哪些案例?
解答思路:说到案例,逃离不了MySQL的五大知识模块:体系结构、数据的备份恢复、复制、高可用集群架构和优化。我们可以从这五个方向着手考虑,比如:
①MySQL版本的升级;②处理集群架构中的各种“坑”和问题(你遇到过的就可以);③根据公司业务类型,合理设计MySQL库、表和后期架构;④定期进行灾备恢复演练;⑤恢复误删除的数据信息。
02
问题2:什么是死锁?锁等待?如何优化这类问题?通过数据库哪些表可以监控?
解答思路:死锁是指两个或多个事务在同一资源上互相占用,并请求加锁时,而导致的恶性循环现象。当多个事务以不同顺序试图加锁同一资源时,就会产生死锁。
锁等待:MySQL数据库中,不同session在更新同行数据时,会出现锁等待的现象。重要的三张锁的监控表:innodb_trx、innodb_locks和innodb_lock_waits。
03
问题3:MySQL主从复制的具体原理是什么?
解答思路:直接阐述原理即可,表达一定要清楚。
主服务器把数据更新记录到二进制日志中,从服务器通过I/O thread向主库发起binlog请求,主服务器通过I/Odump thread把二进制日志传递给从库,从库通过I/O thread记录到自己的中继日志中。然后再通过SQL thread应用中继日志中SQL的内容。
04
问题4:MySQL有哪些索引类型?
解答思路:可以从三个角度去谈。
首先从数据结构角度上可以分为B+tree索引、hash索引、fulltext索引(InnoDB、MyISAM都支持)。其次从存储角度上可以分为聚集索引和非聚集索引。最后逻辑角度上可以分为primary key、normalkey、单列、复合和覆盖索引。
05
问题5:服务器负载过高或者网页打开缓慢,简单说说你的优化思路?
解答思路:我们可以通过前面讲过的优化思路中的四维度模型去阐述。
首先要发现问题的过程,通过操作系统、数据库、程序设计、硬件角度四个维度找到问题所在。先找到瓶颈点的位置,制定好优化方案,形成处理问题的体系模型。体系制定好之后,在测试环境进行优化方案的测试。测试环境下如果优化效果很好,再实施到生产环境上。最后做好处理问题的记录。好记性不如烂笔头,多做总结,方可大步前进。
06
问题6:如何优化一条慢SQL语句?
解答思路:针对SQL语句的优化,我们不要一上来就回答添加索引,这样显得太不专业。我们可以从如下几个角度去分析:
①回归到表的设计层面,数据类型选择是否合理。
②大表碎片的整理是否完善。
③表的统计信息是不是准确的。
④审查表的执行计划,判断字段上面有没有合适的索引。
⑤针对索引的选择性,建立合适的索引(就又涉及大表DDL的操作问题。所以说,我们要有能力把各个知识点联系起来)
07
问题7:为什么要为InnoDB表设置自增列做主键?
解答思路:使用自增列做主键,写入顺序是自增的,和B+数叶子节点分裂顺序一致。InnoDB表的数据写入顺序能和B+树索引的叶子节点顺序一致时,存取效率是最高的。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|粤嵌技术交流空间

GMT+8, 2025-7-8 00:41 , Processed in 0.731763 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表