mysql多列索引groupby_高性能MySQL-索引详解

1.mysql的索引工作类似一本书的目录部分,想找某个特定主题,先查找书的目录部分,找到对应的页码

2.ORM工具只能生成基本的合法的查询

3.索引是在存储引擎层实现的,不是服务器层

4.B-tree就是指的B树,多叉平衡查找树,很多存储引擎使用的b+树,降低磁盘I/O操作,将随机i/o变成顺序i/o

5.b树意味着所有的值是按顺序存储的,每个叶子页到根的距离相同,叶子页存储了指向下一个叶子页的指针

6.存储引擎不需要全表扫描,从索引的根节点开始进行搜索

7.b树索引还可以用于order by和group by 操作

8.只有memory引擎显式支持哈希索引,只支持等值比较=查询速度非常快

9.在b树基础上创造伪哈希索引,自定义个哈希函数加个字段存储,查询语句类似:select * from test where crc_32('haha') and content='haha'

10.三星评价系统:一星 索引将相关记录放一起;二星 数据顺序和查找顺序一致;三星 索引中包含了全部查询列

11.扩展:增加个元数据信息表,例如"哪个用户的信息存储在哪个表中"

高性能的使用索引策略

1.独立的列

2.前缀索引和索引选择性; 每个列的前几个字符 和 不重复的索引对总记录数的比值

尽量让这个前缀的选择性和完整列的选择性接近,选择性越高越好,这样索引会小点

select count(distinct name)/count(*) as sel from test

3.多列索引,注意是否出现索引合并现象

4.选择合适的索引列顺序

选择性高的字段放在前面

5.聚簇索引,innodb支持

6.覆盖索引,不需要回表

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
评论

打赏作者

weixin_39682944

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值