数据库索引

介绍

利用关键字,就是记录的部分数据(某个字段,某些字段,某个字段的一部分),建立与记录位置的对应关系,就是索引。

索引的作用:是用于快速定位实际数据位置的一种机制。 例如:字典的 检索

索引在mysql中,是独立于数据的一种特殊的数据结构。

索引一定有顺序(排好序的快速查找结构),记录则不一定。

索引的类型

  • 普通索引

    是最基本的索引,它没有任何限制。

  • 唯一索引

    索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。

  • 主键索引

    是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值。一般是在建表的时候同时创建主键索引

  • 组合索引

    指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用组合索引时遵循最左前缀集合

  • 全文索引

    主要用来查找文本中的关键字,而不是直接与索引中的值相比较。fulltext索引跟其它索引大不相同,它更像是一个搜索引擎,而不是简单的where语句的参数匹配。fulltext索引配合match against操作使用,而不是一般的where语句加like。

    它可以在create table,alter table ,create index使用,不过目前只有charvarchartext 列上可以创建全文索引。值得一提的是,在数据量较大时候,现将数据放入一个没有全局索引的表中,然后再用CREATE index创建fulltext索引,要比先为一张表建立fulltext然后再将数据写入的速度快很多。

原理

每种存储引擎的索引都不一定完全相同,也不是所有的存储引擎都支持所有的索引类型,本文介绍mysql中的四种索引:

  • B+Tree索引

    最常见的索引,大部分数据库都支持

  • Hash索引

    只有Memory引擎支持,使用场景简单

  • R-Tree索引(空间索引)

    使用很少,是MyISAM引擎的一个特殊索引类型,主要用于地理空间数据

  • S-Full-text(全文索引)

    MyISAM引擎的一个特殊索引类型,主要用于全文索引,InnoDBmysql5.6之后也开始支持全文索引

posted @ 2022-11-28 10:01  三叶草body  阅读(89)  评论(0)    收藏  举报