优化
MySQL中,如何定位慢查询?
- 使用慢查询日志:可以在MySql配置文件当中slow_query_log来启动慢查询日志,通过定义慢查询的阈值,在慢查询日志当中记录查询时间超过阈值的SQL
如果一个SQL语句执行很慢,如何分析原因呢?
可以采用MySQL自带的分析工具Explain
- 通过key和key_len检查是否命中了索引
- 通过type字段查看sql是否有进一步的优化空间,是否存在全索引扫描或全盘扫描
- 通过extra建议判断,是否出现了回表的情况
什么是索引?
- 索引是数据库中用于加快数据检索速度的一种数据结构。它类似于书籍的目录,可以帮助数据库系统快速定位到需要查询的数据位置。
索引的底层数据结构了解过嘛 ?
- MySQL默认的存储引擎InnoDB采用的是B+树的数据结构来存储索引。选B+树原因如下
- 磁盘读取效率更高
- 查询效率更稳定
- 便于扫库和区间查询
B树和B+树的区别是什么呢?
- B树中,非叶子节点和叶子节点都会存储数据。在B+树中所有数据都会存储在叶子节点
- 在进行范围查询时,B+树效率更高。
什么是聚簇索引什