MYSQL优化篇

首先几个问题查看你对MYSQL的掌握是否足够:

1. MYSQL的索引结构是什么,选择其作为索引原因或其优势所在

2. 如何测试并分析SQL语句是否需要优化?

3 . 什么是回表?什么是最左前缀?什么是索引覆盖?

4 . myISAM和innoDB区别有哪些?如何选择?

5 . 如何分析explain查询结果?主要看哪些字段?

6 . 主键如何选择?什么是自然主键与代理主键?为何在能满足业务需求的条件下优先使用自增主键?

7 . 什么是MYSQL的读写分离,主从复制?什么是分库分表?

8 . 连接池的最大连接数如何确定?有何根据?

解答:

1 . B+树

我们知道常见的索引结构有很多如AVL树,红黑树,B树,HASH等,但是为什么最终MYSQL选择了B+树呢?相对于其他索引结构B+树优势何在?

B+树结构如下图:

首先B+树有一个非常贴切的外号:矮胖树    我们知道B+树是一个多叉多结点的树结构因此决定了我们B+树的深度是不大的,这极大的提高了我们依靠索引完成扫表的能力,此外B+树的非叶子结点是不存储数据信息的,这也进一步缩小了我们索引的内存损耗及磁盘IO次数以至于可以让索引在千万级的数据量下依旧保证B+树索引的深度不超过5(一般为3-4),此外B+树的非叶子结点之间使用了双链表进行关联也是为了提高扫表能力。

2 . explian 查询使用,具体看第五点。

3 . 1回表:查询发生在非聚簇索引,无法根据当前索引直接获取所有字段信息,需要根据id到idB+树读取整行数据。是一种不推荐的

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值