- 说一说对数据库优化的理解
- 原则
- 减少系统瓶颈、减少资源占用、增加系统反应速度
- 针对查询
- 使用索引、使用连接替代子查询
- 针对慢查询
- 分析日志
- 针对插入
- 禁用索引禁用、禁用检查、禁用外键检查、禁用自动提交、禁用唯一性检查
- 针对数据库结构
- 拆表、增加中间表、增加冗余字段
- 原则
- 该如何优化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 这两种情况。 |