美文网首页
索引的概念与类型

索引的概念与类型

作者: codingBen | 来源:发表于2018-02-09 01:44 被阅读0次

索引在mysql之中也被称为“键(key)”是存储引擎用于快速找到记录的一种数据结构。 

索引有很多类型,可以为不同的场景提供更好的性能。在mysql中,索引是在存储引擎层而不是服务器层实现的。所以不同的存储引擎的索引的工作方式是不同的,也不是所有的存储引擎都支持所有类型的索引。即使多个存储引擎支持同一种类型的索引,其底层的实现也是不同的。

mysql支持的索引:

1.B-TREE索引(ARCHIVE引擎不支持)

        这里引用维基百科的定义:B树(英语:B-tree)是一种自平衡的,能够保持数据有序。这种数据结构能够让查找数据、顺序访问、插入数据及删除的动作,都在对数时间内完成。B树,概括来说是一个一般化的二叉查找树(binary search tree),可以拥有多于2个子节点。与自平衡二叉查找    树不同,B树为系统大块数据的读写操作做了优化。B树可以减少定位记录时所经历的中间过程,从而加快存取速度。

         大多数时候人们在提到索引但如果特别指明索引的类型的时候,人们指的是B-TREE索引。

        B-TREE通常意味着所有的值都是按顺序存储的,并且每一个叶子页到根的距离都相同

        B-TREE索引能够加快访问数据的速度,是因为存储引擎不再需要进行全表扫描来获取需要的数据,取而代之的是从索引的根节点开始搜索。

        B-TREE对索引列是顺序组织存储的,所以很适合查找范围数据

 2.哈希索引(hash-index只有Memory引擎支持)

        哈希索引是基于哈希表实现,只有精确匹配索引所有列的查询才有效。对于每一行数据,存储引擎都会对所有的索引列计算一个哈希码(hash code) 哈希索引将所有的哈希码存储在索引中,同时在哈希表中保存指向每个数据行的指针。

3.空间数据索引(spatitial index  R-tree MyISAM引擎和Innodb引擎支持)

        和B-Tree索引不同,这类索引无须前缀查询。空间索引会从所有维度来索引数据。查询时,可以有效地使用任意维度来组合查询。必须使用MySQLGIS相关函数如MBRCONTAINS()等来维护数据。但mysql对GIS的支持目前还不完善,不建议使用。

4.全文索引

   全文索引是一种特殊类型的索引,它查找的是文本中的关键词,而不是直接比较索引中的值。全文搜索和其他几类索引的匹配方式完全不一样。它有许多需要注意的细节:如停用词,词干,和复数,布尔搜索等。全文索引更类似于搜索引擎做的事情,而不是简单的where条件匹配。全文索引适用于MATCH AGAINST操作。

相关文章

  • 索引的概念与类型

    索引在mysql之中也被称为“键(key)”是存储引擎用于快速找到记录的一种数据结构。 索引有很多类型,可以为不同...

  • 数据库索引

    重点: 了解索引的概念,类型 掌握创建索引的方法 掌握如何修改,删除索引 索引 概念:索引是一个单独的,物理的数据...

  • Kibana请求Elasticsearch增删改查操作

    1、基础概念 概念说明索引库(indices)indices是index的复数,代表许多的索引,类型(type)类...

  • ES学习(2)-基本概念

    ES基本概念 索引 索引同数据库 如上链接中,customer就是索引 类型 类型同表如上链接中,external...

  • 《高性能mysql》笔记-索引

    索引基础 索引类型B-Tree索引(默认指明索引)按照顺序存储数据 哈希索引概念:哈希索引基于哈希表实现,只有精确...

  • SQL与索引优化合集

    一、《索引的概念与通用技巧》 内容:聚集索引,非聚集索引,联合索引,索引覆盖的概念以及使用技巧 二、《or、in、...

  • MySql索引详解

    常见索引类型(实现层面) 索引种类(应用层面) 聚簇索引与非聚簇索引 覆盖索引 最佳索引使用策略 1.常见索引类型...

  • 「Mysql索引原理(二)」Mysql高性能索引实践,索引概念、

    1. 索引是什么2. 索引的类型3. BTree索引 概念 举例:以5阶数为列4. B+Tree索引 ...

  • ElasticSearch系列文章一 核心概念

    ElasticSearch 核心概念 索引(index) 类型(Type) 文档(Document) 字段 (Fi...

  • 初识es

    by shihang.mai 基本概念 索引、类型、文档 可以直接类比 mysql的库、表、记录 倒排索引 如果我...

网友评论

      本文标题:索引的概念与类型

      本文链接:https://www.haomeiwen.com/subject/fssxtftx.html