作者简介
小6,世界五百强产品出身,现任深圳某互联网公司IT负责人,<极客时间>课程讲师。关注小6,带你实战互联网求职面试!
1 xtrabackup 原理?其中拷贝数据是以什么为单位?
XtraBackup 备份的原理:
(1)先记录日志序列号(LSN),然后复制InnoDB数据文件。同时,运行一个后台进程来监视Redo Log,如果Redo Log有修改,则从中复制。
(2)加备份锁(使用lock instance for backup语句,8.0才有)。
(3)备份完事务引擎的数据和日志后,锁定MyISAM和其他非InnoDB表。
(4)复制非事务引擎的表数据文件。
(5)查询GTID信息和Binlog位点(使用select server_uuid,local,replication,storage_engines from performance_schema.log_status语句)。
(6)停止复制Redo Log。
(7)释放锁(使用unlock instance语句)。
(8)复制ib_buffer_pool。
(9)备份完成。
Xtrabackup恢复的原理
(1)首先是prepare:模拟MySQL进行崩溃恢复,将Redo Log回放到数据文件中
(2)等恢复完成。重建redo log
(3)将数据文件复制或者移动到MySQL数据目录
(4)还原完成。
2 8.0 的新特性
事务性数据字典
而8.0将元数据信息统一存储到数据字典中,更容易实现DDL变更的原子操作。
快速加列
MySQL 8.0 可以实现大表秒级加列
不可见索引
从MySQL 8.0开始,支持不可见索引,优化器不会主动使用这种索引。
比如我们想知道增加和删除索引对查询性能的影响,就可以考虑使用不可见索引。这个在调试SQL的时候比较有用。
角色管理
MySQL 8.0引入了角色管理,非常方便用户不同,权限相同的场景
hash join
可以用来优化没有使用索引的关联查询
如果被驱动表的关联字段没索引,就会使用 Block Nested-Loop Join(简称:BNL),为什么会选择使用 BNL 算法而不继续使用 Nested-Loop Join呢?下面就一起分析下:
Block Nested-Loop Join(BNL) 算法的思想是:把驱动表的数据读入到 join_buffer 中,然后扫描被驱动表,把被驱动表每一行取出来跟 join_buffer 中的数据做对比,如果满足 join 条件,则返回结果给客户端。
从 MySQL 8.0.20 开始,MySQL 不再使用 Block Nested-Loop Join 算法,并且在以前使用 Block Nested-Loop Join 算法的所有情况下都使用 Hash Join 优化。
将驱动表的数据加载到内存中构建哈希表,
然后逐行读取被驱动表的数据,并通过哈希函数将连接条件的列的值映射为哈希值,去之前构建的Hash表查找匹配的记录,
一旦在Hash表中找到匹配的记录,对这些记录进行一一比较,得出最终的Join结果。
跟Block Nested-Loop Join算法类似,但是不需要将被驱动表的数据块写入内存或磁盘,更少的IO以及更节省资源
3 除了 B+ tree 索引,还知道哪些索引?
一个开放性的题目,应该是考察学习的广度。
各种数据库的各种索引都可以聊聊
比如:
HASH索引
ES的倒排索引
等等。
4 hash索引的原理
会对所有索引列计算一个哈希码,不同行计算出的哈希码也不一样。哈希索引将所有的哈希码存储在索引中,同时保存指向每个数据行的指针。
哈希索引不是按照索引值顺序存储的,所以不能用于排序
哈希索引只支持等值比较查询,不支持范围查询。
5 自动化运维平台的一些功能
这个是根据小编简历问的,
当时自动化运维平台包括了各种数据库组件延迟探测
慢查询展示页面
数据库当前活跃连接
MySQL备份详情。
6 看过的MySQL 相关的书籍
这个也是一个开放型问题,主要考察平时是否爱学习。
书籍这个自己找下就好,但是一定要自己看过,防止面试官进一步问你书籍里面的内容,最好是记住书籍里的一个知识点,回答的时候顺带说下这个知识点,这就是证明你真的看过。
7 是否有某个业务的全链路监控
这个也是基于当时简历来问的
简历上有写数据库组件的全链路监控
没有某个业务的全链路监控。
存活节点组:所有存活的从节点。 latest节点组:选取Binlog最近的从节点作为latest节点。 优选节点组:选取配置文件中指定了candidate_master=1的存活从节点。 劣质节点组:不参与选主的从节点(参数配置no_master=1节点);未开启Binlog的从节点;复制延迟超过一个文件位置或100 000 000个位点的从节点。
1.回复“字节”,获取字节跳动终面(HRBP)10道精选面试题及分析
2.回复“小米”,获取小米(HRBP)10道精选面试题及分析
3.回复“HR”,获取精选20道精选HR面试题及分析
4.回复“DBA简历”,获取DBA简历模板
5.回复“数据库”,获取10道精选数据库面试题及分析
6.回复“简历修改”,获取简历修改方式
7.扫码加群或咨询知识星球,可以加小苏微信。