【mysql】Mysql⽬前主要的⼏种索引类型
summit是什么意思>collect的过去分词索引类型
Mysql⽬前主要有以下⼏种索引类型:FULLTEXT,HASH,BTREE,RTREE。
FULLTEXT
即为全⽂索引,⽬前只有MyISAM引擎⽀持。其可以在CREATE TABLE ,ALTER TABLE ,CREATE INDEX 使⽤,不过⽬前只有CHAR、VARCHAR ,TEXT 列上可以创建全⽂索引。
全⽂索引并不是和MyISAM⼀起诞⽣的,它的出现是为了解决WHERE name LIKE “%word%"这类针对⽂本的模糊查询效率较低的问题。
HASH
由于HASH的唯⼀(⼏乎100%的唯⼀)及类似键值对的形式,很适合作为索引。
HASH索引可以⼀次定位,不需要像树形索引那样逐层查,因此具有极⾼的效率。但是,这种⾼效是有条件的,即只在“=”和“in”条件下⾼效,对于范围查询、排序及组合索引仍然效率不⾼。
shoulders
BTREE
BTREE索引就是⼀种将索引值按⼀定的算法,存⼊⼀个树形的数据结构中(⼆叉树),每次查询都是从树的⼊⼝root开始,依次遍历node,获取leaf。这是MySQL⾥默认和最常⽤的索引类型。
如何用代码制作小程序RTREE
RTREE在MySQL很少使⽤,仅⽀持geometry数据类型,⽀持该类型的存储引擎只有MyISAM、BDb、InnoDb、NDb、Archive⼏种。相对于BTREE,RTREE的优势在于范围查。
ps. 此段详细内容见此⽚博⽂:Mysql⼏种索引类型的区别及适⽤情况
索引策略
什么是索引策略?注意与索引类型区分开,索引策略就是针对某个具体的索引类型提供多个⽅案,不同的⽅案各有优缺点,根据实际的需求,采⽤相应的最佳策略。
各种策略参见
普通索引:仅加速查询
唯⼀索引:加速查询 + 列值唯⼀(可以有null)
mysql面试题索引主键索引:加速查询 + 列值唯⼀(不可以有null)+ 表中只有⼀个
组合索引:多列值组成⼀个索引,专门⽤于组合搜索,其效率⼤于索引合并
全⽂索引:对⽂本的内容进⾏分词,进⾏搜索
ps.
索引合并,使⽤多个单列索引组合搜索
覆盖索引,select的数据列只⽤从索引中就能够取得,不必读取数据⾏,换句话说查询列要被所建的索引覆盖
phpstorm如何永久激活?参考:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论