数据库索引

什么是索引

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

索引类型

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 中只有一个表的列,这样才能使用索引

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值