MySQL中 散列索引和B树索引的一点区别

不同的存储引擎默认的索引模式是不一样的,InnoDB 和 MyISAM 使用的索引模式默认是B树索引,MEMORY 默认使用散列索引。

    对于散列索引,会有一个散列函数来依次处理每一个数据列值。结果散列值将被存入该索引并用来进行查询。(散列函数采用的算法会尽量为不同的输入值生成不同的散列值,使用散列索引值的好处是他们之间的比较比其原始值更有效率)散列索引在使用“=” 或者 “<=>” 操作符进行的精确匹配比较操作里速度极快,但它们用来查找一个范围的比较操作里表现不佳,例如下面这些表达式:

    id < 30

    weight between 100 and 150

 

    B树索引在使用 <,<=,=,>=,<>,!=和between 操作符进行的精确比较操作或范围比较操作里都很有效率。如果匹配模式是以一个纯字符串而不是一个通配符开头的话,“B树”索引还可以用于like操作符进行的模糊匹配模式操作。

 

 

 

转载于:https://my.oschina.net/hcy8888/blog/2218594

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值