博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql索引的类型
阅读量:6366 次
发布时间:2019-06-23

本文共 934 字,大约阅读时间需要 3 分钟。

  • 索引的类型
    • B-Tree索引
      • B-Tree 索引 通常意味着所有的值都是按顺序存储的,并且每一个叶子页到根的距离相同。
      • B-Tree 索引 能够加快访问数据的速度,存储引擎不再需要进行全表扫描来获取需要的数据,取而代之的是从索引的根节点开始搜索
      • B-Tree 索引 适用于全键值、键值范围或键前缀查找(最左前缀原则)。
    • 哈希索引
      • 哈希索引 基于哈希表实现,只有精确匹配索引所有列的查询才有效。
      • 哈希索引 是Memory引擎表的默认索引类型,但Memory同时也支持B-Tree索引。
      • 哈希索引 自身只需存储对应的哈希值和行指针,而不存储字段值,所以索引的结构十分紧凑,这也让哈希索引查找的速度非常快。
      • 哈希索引 数据并不是按照索引值顺序存储的,所以无法用于排序
      • 哈希索引 不支持部分索引列匹配查找,因为哈希索引始终是使用索引列的全部内容来计算哈希值的。例如数据列(A,B)上建立索引,如果查询只有数据列A,则无法使用该索引。
      • 哈希索引 不支持任何范围查询,如WHERE score > 60。
      • 哈希索引 只支持等值比较查询,包括=、IN()、<=>(注意<>和<=>是不同的操作)。
      • 介绍一个使用场景:如需要存储大量的URL,并需要根据URL进行搜索查找。如果使用B-Tree来存储URL,存储的内容就会非常大,因为URL本身很长。
    • 空间数据索引
      •  MyISAM表支持空间索引,可以用作地理数据存储。
      •  MySQL的GIS支持并不完善,所以大部分人都不会使用该特性。
      •  空间索引会从所有维度来索引数据,和B-Tree不同,这类索引无须前缀查询
      •  必须使用MySQL的GIS相关函数如MBRCONTAINS()等来维护数据。
    • 全文索引
      •  全文索引是一种特殊类型的索引,它查找的是文本中的关键词,而不是直接比较索引中的值。
      •  全文索引使用与MATCH AGAINST操作,而不是普通的WHERE条件操作。
    • 其他索引
      •  TokuDB 使用分形树索引,既有B-Tree的很多优点,又避免了B-Tree的一些缺点。
      •  ScaleDB 使用Patricia tries。
      •  InfiniDB 和 Infobright 使用了一些特殊的数据结构来优化某些特殊的查询。

未完待续..稍后以实例验证

转载地址:http://xyrma.baihongyu.com/

你可能感兴趣的文章
SCrapy爬虫大战京东商城
查看>>
用 JavaScript 实现链表操作 - 11 Alternating Split
查看>>
Laravel优秀扩展包整理
查看>>
日志分析之识别真假蜘蛛与处理办法
查看>>
太多脚本将会毁掉持续交付
查看>>
一地鸡毛 OR 绝地反击,2019年区块链发展指南
查看>>
卢森堡大学发布RepuCoin系统,可破解区块链51%攻击
查看>>
国内云计算厂商众生相:四大阵营十几家企业生存盘点
查看>>
细说Unicode(一) Unicode初认识
查看>>
Node.js有了新的管理者
查看>>
Java 20年:历史与未来
查看>>
彻底理解Javascript中的原型链与继承
查看>>
腾讯最大规模裁撤中层干部,让贤年轻人
查看>>
gRPC-Web发布,REST又要被干掉了?
查看>>
如何:强化 TCP/IP 堆栈安全
查看>>
Spring3 MVC中使用Swagger生成API文档
查看>>
FastCGI PHP on Windows Server 2003
查看>>
LimeSDR Getting Started Quickly | LimeSDR上手指南
查看>>
JSP标签JSTL的使用(1)--表达式操作
查看>>
SAP顾问的人脉比技术更为重要
查看>>