MySql教程

MYSQL之b+tree和hash的区别简写

本文主要是介绍MYSQL之b+tree和hash的区别简写,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

刚刚整理完MySQL的笔记,想起记录hash和b+tree的区别,

那么现在顺手写一下。

Hash索引是这样子的:

  举个例子,比如有某个值,A,hash索引会把A转换成hash码存入hash表中,是无序的,大概就是下图这样子,hash的排序是根据hash码来排序,因此对饮的表数据是无序的

 

 

 因此和B+tree不一样,区别如下:

  hash不支持最左原则,b+tree支持。因为hash的联合查询是这样,比如where a=1 and b=2,是把 a=1 and b=2转成一个hash码来进行查询,如果换成 b=2 and a=1,那么hash码将完全不同,索引失效。

  hash不支持范围查询,因为hash是无序的,和b+tree不一样,b树是有序的

  hash不支持order by,因为是无序的

  hash不支持模糊查询

  hash在等值查询上效率比btree高,因为hash可以根据查询条件直接找到需要的数据

这篇关于MYSQL之b+tree和hash的区别简写的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!