Mysql索引简单了解

索引是一种为了加速数据表中行记录检索的数据结构

mysql:B+树

特点:

  • 在根节点和支节点(中间节点)之上没有数据区
  • 所有的数据内容保存在叶子节点之上
  • 数据的组织和查找过程采用的是左闭合的比较方式

基于B树的优势:

  • B+树是B-树的Plus版本,IO的效率高于B-树
  • 基于索引的表扫描性能高于B-树,排序能力更强于B-树
  • 基于索引的查询B+更趋于稳定(固定的查询次数)

创建索引需要注意的问题

  1. 索引列的离散性,离散性越高越好,重复度越低越好。
  2. 索引项的比较规则 (隐式转换)
  3. 联合索引遵循最左前置原则(最常用列>l离散度高>最少空间),单列索引是一种特殊的联合索引
  4. 覆盖索引:通过索引项的信息可直接返回所需的查询列

Sql常见优化规则

  • SQL的查询一定要基于索引完成SQL的结果集扫描
  • 避免索引列上使用函数或者运算,这样会导致索引失效
  • 避免列的隐式转换
  • where 字句中like模糊匹配%,%放置在查询条件右边
  • 使用索引扫描,联合索引中的列从左往右,命中越多越好.
  • 尽可能使用SQL语句用到的索引完成排序,避免使用文件排序的方式查询
  • 有效的列信息即可.少用*代替列信息
     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值