• 0
  • 0

MYSQL中Btree索引和hash索引的区别

2020-08-13 59 0 admin 所属分类:Mysql
B-tree Hash 
需要从根节点到枝节点,最后才能访问到页节点  
  检索效率非常高 索引的检索可以一次定位
 需要多次的IO访问 Hash 索引仅仅能满足"=","IN"和"<=>"查询,不能使用范围查询
 查询效率要远低于 Hash 索引 无法被用来避免数据的排序操作
   对于组合索引 ,不能利用部分索引键查询
  在任何时候都不能避免表扫描
  遇到大量Hash值相等的情况后性能并不一定就会比B-Tree索引高

索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索包含多个列。 

 为了进一步榨取MySQL的效率,就要考虑建立组合索引

ALTER TABLE mytable ADD INDEX name_city_age (name(10),city,age);

索引大大提高了查询速度,同时却会降低更新表的速度 

 建立索引会占用磁盘空间的索引文件

索引不会包含有NULL值的列,在数据库设计时不要让字段的默认值为NULL

  

返回顶部