# MYSQL
- 关系型数据库
- 默认引擎 InnoDB, 通过 JDBC 连接
- 支持事务,分布式事务,savepoint
- undo,redo,binlog
# 数据库优化方式
- 服务器硬件:cpu, 内存,磁盘 io, 网卡流量
- 服务器操作系统配置
- 存储引擎选择
- 数据库自身配置参数
- 数据库表结构的设计和 SQL 语句的执行效率 (慢查询,不合理的数据库表结构设计,不合理索引)
- 数据库架构:高并发下读写分离,分库分表,多级缓存,搜索引擎
# 如何定位慢查询
- 业务驱动
- 测试驱动
- 系统跟踪驱动 (Prometheus,SkyWalking)
- 慢查询日志
# 索引
- 一种数据结构,方便快速的查找数据,类似于书的目录
- 底层数据结构为 B + 树 (多),hash 树
- 类型分为,普通索引,唯一索引,fullText 索引,spatial 索引
- 添加索引的方式
- 索引的命名规范
- 什么是索引下推,有什么作用 (减少回表次数)
- 局部性原理与磁盘预读
- 为什么使用自增数字作为组件索引 (依次往后写入,减少移动,减小开销)
- 主键索引;辅助索引 (二级索引); 聚集索引 (聚簇索引); 非聚集索引 (非聚簇索引)
- 什么是覆盖索引 (一种 sql 优化手段)