无意中看到阿里巴巴的面试题,,借此回首DBMS时刻趁热打铁巩固一下基础
拿到题目大概浏览了一遍难度大概在中上游水平,自己跪了接近35%的题目
自己答题如下,欢迎大家讨论分析题1、MySQL的复制原理以及流程
.
(1)、先问基本原理流程,3个线程以及之间的关联;
.
从 发起请求I/O thread线程请求 主
主 接收到请求使用binlog dump线程回应 从
从 I/O thread线程将请求接收下来保存为中继日志
从 再开SQL thread线程将中继线程保存为执行日志
.
(2)、再问一致性延时性,数据恢复;( 每个人角度不同 )
.
出发点 是否使用工具 业务线是否正常 备份恢复成本 一致性
热备份 借助 细微影响 偏高 组合才能完全
温备份 借助 受一部分 中等 完全
冷备份 无 停滞 较低 完全
.
mysqldump
innodb热备 结合binlog 启动大事务
innodb温备 最好锁定表(若有事务则需要结合binlog)
.
数据恢复: 通常情况下 每周完整 + 周中的增量or差异 + 新的binlog
.
(3)、再问各种工作遇到的复制bug的解决方法。
手抖将同步时间改太短,导致cpu空转
主主模式主键重复,调整auto_instcrment
.
.
2、MySQL中myisam与innodb的区别,至少5点
.
(1)、问5点不同;
.
事务有无
多版本控制
行锁
热备份
崩溃恢复
.
(2)、问各种不同mysql版本的2者的改进;
.
同(1)问缺什么补什么
innodb -> xtradb 性能上的
myisam -> aria 崩溃恢复
.
(3)、2者的索引的实现方式。
.
btree InnoDB,MyISAM 左节点小于右节点,提高查询效率
rtree MyISAM btree是2维结构,,那么rtree多于3维
.