Mysql之连环问

目录

Mysql中如何定位慢查询?

SQL语句执行很慢,如何分析?

什么是索引?

索引的底层数据结构?


  • 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便于扫库和区间查询,叶子节点是一个双向链表。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值