Mysql建立索引

本文详细介绍了Mysql中四种不同的索引类型:全文索引(fulltext)、哈希索引(hash)、B树索引(btree)及R树索引(rtree),包括各自的适用场景、优缺点,并提供了创建和使用的具体示例。

Mysql建立索引的方式:fulltext,hash,btree,rtree

区别和适应场景:

Fulltext:

全文索引,只用Myisam引擎,只能在char,varcha人,和text的类型的列上使用,当数据量大的时候,我们首先创建一个没有全文索引的表导入数据,在利用create index 创建一个全文索引,要比直接创建全文索引然后导入数据要快得多;
全文索引的诞生是为了解决模糊查询效率低的;
使用方式:
创建ALTER TABLE table ADD INDEX FULLINDEX USING FULLTEXT(cname1[,cname2…]);
使用SELECT * FROM table WHERE MATCH(cname1[,cname2…]) AGAINST (‘word’ MODE );

Hash:

hash索引具有一次定位,不像树形索引那样查询效率低,
hash索引和tree索引的区别:

1. hash索引不支持范围查询;
2. hash索引不能利用部分索引键来查询
3. hash索引不能避免排序的操作
4. hash不能避免表扫描

Rtree

使用很少,只支持geometry数据类型,相对于Btree的优势是支持范围查找;

Btree

是一种按照算法将索引放入到树形的数据结构中,
BTREE在MyISAM里的形式和Innodb稍有不同:
在 Innodb里,有两种形态:一是primary key形态,其leaf node里存放的是数据,而且不仅存放了索引键的数据,还存放了其他字段的数据。二是secondary index,其leaf node和普通的BTREE差不多,只是还存放了指向主键的信息.
而在MyISAM里,主键和其他的并没有太大区别。不过和Innodb不太一样的地方是在MyISAM里,leaf node里存放的不是主键的信息,而是指向数据文件里的对应数据行的信息.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值