目录
-
Mysql中如何定位慢查询?
做压测的时候有的接口非常慢,接口的响应时间超过了2秒以上,通过系统部署了运维的监控系统Skywalking,在展示的报表中可以查看到接口响应时间,并可以分析接口哪个部分比较慢,可以看到sql的具体执行时间,所以可以定位出sql出现的问题
-
SQL语句执行很慢,如何分析?
如果一条sql执行很慢的话,我们通常会使用mysql自动的执行计划explain来查看这条sql的执行情况,比如在这里面可以通过key和key_len检查是否命中索引,如果本身已经添加了索引,也可以判断索引是否有失效的情况,第二个,可以通过type字段查看sql是否有进一步优化的空间,是否存在索引扫描或全盘扫描,第三个可以通过extra建议来判断,是否出现了回表情况,如果出现了,可以尝试添加索引或修改返回字段来修复。
-
什么是索引?
它是帮助MySQL高效获取数据的数据结构,主要来提高数据检索的效率,降低数据库的IO成本,同时通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗。
-
索引的底层数据结构?
MySQL的默认存储引擎InnoDB采用的是B+tree的书籍结构来存储索引,选择B+tree的主要原因是,第一阶数更多,路径更短,第二个磁盘读写代价B+tree更低,非叶子结点只存储指针,叶子节点存储数据,第三式B+tree便于扫库和区间查询,叶子节点是一个双向链表。