【mysql】索引

mysql的索引是由引擎决定的。

1.哈希索引,这个和哈希表是一样的原理,从关键字的哈希函数值映射到物理位置。特点是只能针对等于的查询,效率很高。

2.B树索引,为关键字维护一棵b树,通常是b+树,叶子节点存的是数据块的位置。这种索引主要实现了顺序。首先可以排序。其次做前缀索引,应用于多列索引的场合。如果是多列,那么构建索引的顺序决定了最终字典序的顺序。查询时,要特别注意条件,因为是最左匹配。索引构建索引的顺序要按照查询的需求来。

3.全文索引,在myisam引擎中,用于文本的查询,使用了分词这样的技术,检索内容比较快。

4.聚簇索引,其实这个维度和上面是不同的概念。聚簇索引并不是索引,主要强调的是行的物理排列方式,也是按照顺序的。所以最终的行的顺序和索引是一致的。不过,在一张表中,只能有一种物理排列顺序,也就只能有一种聚簇索引。聚簇索引的好处是,检索相邻的数据很快,因为物理上是按照顺序来的。但是缺点是,对插入数据的顺序要求较高,如果按照顺序插入,性能很好,但是如果不是,或者是随机,那么很可能要插入已存在的两行之间,那么只能做移动,效率很低,或者插入的一个满的页,那么会导致页的分离,也会有数据的复制。聚簇索引,也可以进一步细分,这个列是不是键,如果是,那么索引项的数目更少,因为不需要为每一行数据都做索引,只要为每一个物理页的第一行做索引即可。这一行叫做anchor record。但如果不是键,那么就需要为每一个值做索引,只存该值第一行的物理位置,总之得到第一行的位置,后面就可以当做链表了。对不是按顺序物理排放的列,只能做二级索引,也就是为每一个值都做一个索引项。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值