什么是数据库索引,数据库索引有几种,索引(index)类型

什么是索引

索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。(摘自百度百科)

索引类型

1.FULLTEXT 全文索引

全文索引,仅MyISAM引擎支持。其可以在CREATE TABLE ,ALTER TABLE ,CREATE INDEX 使用,不过目前只有 CHAR、VARCHAR ,TEXT 列上可以创建全文索引。

2.HASH 哈希索引

HASH索引的唯一性及类似键值对的形式十分适合作为索引,HASH索引可以一次定位,不需要像树形索引那样逐层参照,因此具有极高的效率。但是这种高效是有条件的。即只在“=”和“in”条件下高效,对于范围查询,排序及组合索引仍然效率不高。

3.BTREE 树形索引

BTREE所以是一种将索引按一定算法,存入一个树形的数据结构中(二叉树),每次查询都是从树的入口root开始,一次遍历node,获取leaf。这是MySQL中默认也是最常用的索引类型。

4.RTREE

RTREE在MySQL中很少使用,仅支持geometry数据类型,支持该存储引擎只有MyISAM、BDb、InnoDb、NDb、Archive几种。相对于BTREE,RTREE的优势在于范围查找。

索引种类


普通索引:仅加速查询


唯一索引:加速查询+列值唯一(可以有null)


主键索引:加速查询+列值唯一(不可以有null)+表中只有一个


组合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并


全文索引:对文本内容进行分词,进行搜索


外键索引:与主键索引形成联系,保证数据的完整性。


索引使用的注意事项


1.符合索引遵循前缀原则


2.like查询%不能再前,否则索引失效。如有需要,使用全文索引


3.column is null可以使用索引


4.如果MySQL估计使用索引比全表扫描慢,则放弃使用索引


5.如果or前的条件中列有索引,后面的没有,索引不会生效。


6.列类型是字符串,查询时,一定要给值加引号,否则索引失效。


7.确定order by 和 group by 中只有一个表的列,这样才能使用索引


—————————————————————————————————————

亲爱的用户,您好!如果您喜欢这个网站,欢迎赞助我,您们的支持是我的动力。

赞赏款用于服务器、文章等网站的固定支出。欢迎大家支持,谢谢!

51cb4e9a9397260f1f774ee07de0b77.jpg