数据库高频八股问答式提词器(基于MySQL)

数据库

  • SQL语句及优化
    • explain 字段/意思
    • order by 如何工作
      • 全字段排序 sort_buffer_size(buffer内排序方法/内部?外部?)
      • rowid 排序 如何设置 max_length_for_sort_data (buffer里存什么)
      • 排序方式比较(谁快,多了一步什么)
      • 如何避免buffer内排序?
    • 能不能用JOIN?
      • 什么情况下能?什么情况下不能?
      • JOIN的两种方式(MySQL8.0/之前)
      • 前者有何特点,时间复杂度,空间复杂度,选谁为驱动表?
      • 后者有何特点,时间复杂度,空间复杂度,选谁为驱动表?
      • OLTP和OLAP分别是什么意思,用什么方式?
    • 能不能用子查询?
      • 什么时候能,什么时候不能
      • 如何判定
      • 如何优化
    • 分页查询优化
    • where 替换having
    • 索引提示优化
  • SQL数据类型
    • 有哪些
    • 自增ID推荐数据类型?
    • 真实场景金融数据推荐数据类型?
    • UTF8MB4的优势
    • 什么叫多字节字符集,该场景下char和varchar 的区别?其他场景下呢?
    • 相比于DATETIME, TIMESTAMP的特点和优势
    • 为什么说TIMESTAMP可能是巨坑
    • 相比于string,json的特点和优势
    • json的使用场景
  • 数据库表设计准则
    • 自增ID还是UUID?各有什么优势和问题
    • 反范式设计
  • 执行一条select语句完整过程:
    • MySQL 的架构共分为哪两层:?
    • 连接器
      • 基于什么协议
      • 什么时候释放资源
    • 查询缓存(已移除)
      • 哪个版本移除
      • key-value分别存储什么
    • 解析器
      • ?分析 干了什么
      • ?分析 干了什么
      • 表或字段不存在是否报错?
    • 执行
      • 预处理器 干了什么
      • 优化器 干了什么
      • 执行器 干了什么
      • 全表扫描是什么操作,逐个返回还是全部返回
      • 索引下推是什么意思,做了什么操作
  • MySQL一行数据如何存储
    • 数据库存在哪个目录下
    • 目录下有哪三种文件
    • 表空间的文件结构层级:4级/一行最多多少字节/读写的最小单位/大表的分配空间基本单位(为什么有区别)/B+数的节点信息和MVCC的回滚信息存储在哪一级
    • 有哪几种行格式,现在用的哪一种
    • compact将一行数据分为哪两个部分
      • 前者包括哪些/是否逆序/是否必须
      • 后者包括哪些/是否必须
  • 索引
    • 使用B+树相较于 排序二叉树/自平衡排序二叉树/红黑树/B-树/hash搜索/跳表的优势.
    • 索引放在哪里(分部分)
    • 索引失效(部分1种/全部6种)
    • 堆表和索引组织表(MySQL的性能优势)
    • 组合索引:优势:避免额外排序和索引覆盖/选择:索引区分度
    • 哪些字段需要索引
    • 索引的限制
    • 索引的优化方法(4种)
  • 事务
    • 特性
    • 可能出现的问题
    • 隔离级别
    • MVCC是什么,解决了什么问题
    • ReadView有哪几个字段,分别表示什么
    • MySQL如何解决幻读,完全解决了吗,为什么
    • 除了默认隔离级别,还能怎么改变隔离级别
  • MySQL有哪些锁
    • 全局锁 如何使用/何时使用/有哪些问题/如何解决
    • 表级锁
      • 表锁 如何使用/有哪些问题
      • MDL 什么意思 有哪几种/如何使用/如何释放
      • AUTO-INC 锁 什么意思 mysql做了何种优化/有什么问题/怎么解决
      • 意向锁 什么意思/解决了什么问题/互斥规则
    • 行级锁
      • 谁支持?
      • 哪三种?之间有什么关系?
      • 插入意向锁 是一种特殊的?
    • mysql的锁锁的是什么?
    • 释放锁的时机
    • 乐观锁实现/CAS是什么
  • MySQL锁问题
    • 运行时插索引
  • 三种log
    • 分别解决了什么问题
    • undo如何持久化
    • buffer pool是什么 读写发生了什么变化
    • 都是写入磁盘,为什么需要redo而不是直接bp刷盘
    • redo什么时候刷盘 /redo刷盘涉及到几层缓存/写满了怎么办/追上了怎么办/使用哪种引擎/内容
    • redo bin的区别(四个)
    • bin有几种格式类型/写入方式/什么时候刷盘
    • 主从复制 流程/从库越多越好?/几种模型?
    • 两阶段提交 解决了什么问题/开启了什么事务,谁是协调者,谁是参与者/存在什么问题
    • 组提交有哪几种,分别如何实现
  • 分库分表
    • 为什么需要分库/分表(分开说明)
    • 哪几种切分方式,分别解决了什么问题?每种切分方式分别又有什么方式?
    • 引入的问题(三个)/每种切分方式的不同方式又引入什么问题?
    • 分表逻辑怎么写/怎么选
    • 业务中分库分表是否可行?怎么做?
    • 分库分表后的唯一主键问题/有什么问题/解决了吗/还有什么替代方法/有什么优势和问题
  • 分布式事务
    • 是什么/为什么会发生?
    • 有哪些解决方案
    • 一个关键概念/什么意思?
    • 有哪些开源组件
    • 典型的有哪两种协议/分别有什么特点/完全解决了吗
    • XA是什么,有哪几种,MySQL怎么实现
    • XA和TCC的区别/各自有什么优势和问题/如何实现

数据库八股提词器

  • 15
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值