- 说一说对数据库优化的理解
- 原则
- 减少系统瓶颈、减少资源占用、增加系统反应速度
 
 - 针对查询
- 使用索引、使用连接替代子查询
 
 - 针对慢查询
- 分析日志
 
 - 针对插入
- 禁用索引禁用、禁用检查、禁用外键检查、禁用自动提交、禁用唯一性检查
 
 - 针对数据库结构
- 拆表、增加中间表、增加冗余字段
 
 
 - 原则
 - 该如何优化MySQL的查询
- 使用索引
- 索引不起作用的三种情况
- like %xx
 - 不满足最左前缀
 - 使用or的查询
 
 
 - 索引不起作用的三种情况
 - 优化子查询
- join替代子查询
 
 
 - 使用索引
 - 表中有几千万条数据怎么办?
- 优化SQL和索引
 - 增加缓存
 - 读写分离
 - 使用分区表
 - 垂直与水平拆分
 
 - 对MySQL的慢查询优化有了解吗?(面试真题)
- 索引没有起作用
- 检查like、or、最左前缀
 
 - 优化数据结构
- 分表
 - 建立中间表
 
 - 分解关联查询
 - 优化LIMIT分页
 
 - 索引没有起作用
 - 说说对explain的了解
- 基本语法
EXPLAIN [EXTENED] SELECT XXX
 - 查询结果
 
 - 基本语法
 
| 列名 | 备注 | 
|---|---|
| type | 本次查询表联接类型,从这里可以看到本次查询大概的效率。 | 
| key | 最终选择的索引,如果没有索引的话,本次查询效率通常很差。 | 
| key_len | 本次查询用于结果过滤的索引实际长度。 | 
| rows | 预计需要扫描的记录数,预计需要扫描的记录数越小越好。 | 
| Extra | 额外附加信息,主要确认是否出现 Using filesort、Using temporary 这两种情况。 | 
