MySQL常见的索引类型有B-Tree、哈希索引、R-Tree、全文索引和其它索引类别(TokuDB、ScaleDB、InfiniDB、Infobright……)。
不过在众多的索引类型中B-Tree和全文索引是比较常用的两种存储索引类型。
在MySQL中,索引是存储在存储引擎层而并非是服务器实现层。所以,就没有统一的标准:不同的存储引擎的索引工作
方式并不一样,也不是所以的存储引擎都支持所有类型的索引。
一、B-Tree索引
当人们在说MySQL索引时,没有特别的只明类型,那么多半是再说B-Tree索引。大多数的存储引擎都支持B-Tree。
二、哈希索引
哈希索引(hash index)基于哈希表实现的,只有精确匹配索引所有的列查询才有效。对于每一行数据,存储引擎就会
计算出该列的一个哈希码,哈希码时一个比较小的值,方便存储和匹配。
三、空间数据索引(R-Tree)
MyISAM支持空间索引,可以用作地理数据存储。
四、全文索引
全文索引是一种特殊的类型的索引,它是查找文中的关键词,而并不是直接的比较索引中的值。全文索引和其它几类
索引的匹配方式完全不一样。全文索引更类似于搜索引擎的事情,而不只是简单的WHERE条件匹配。
五、其它索引类别
除了上面的还要很多第三方提供的索引类别:TokuDB、ScaleDB、InfiniDB、Infobright……。我的能力有限就不详细的
说了,他们的出现肯定也有他们的道理和优点。
好了这里就简单的介绍了一下MySQL的索引类别,后期会比较这些索引的优缺点,请关注天狗博客
MySQL内容专区:http://tngou.yi18.net/tags/mysql
该贴由hui.chen转至本版2014-11-5 16:08:04