数据库索引

来源:互联网 发布:帝国cms电影源码 编辑:程序博客网 时间:2024/06/08 13:52

数据库索引:

【聚集索引】

Innodb的索引也为b+树,但它数据域存储的内容为实际的数据,其索引的key为表的主键,因此,Innodb表的数据文件本身就是主索引

(本身为主键聚集)所以,要求表必须要有主键,(MySQL会自动生成主键,若没有的话)不建议使用长的键(辅助索引数据域存储的是相应主键的值而不是地址,当以辅助索引查找时,先找到值)

【非聚集索引】
(引擎)MyIASM索引结构为b+树,其数据域存储的内容为实际的数据地址,也就是说索引和实际的数据是分开的,只不过用索引指向了它的数据<非聚集索引>
文章标题

数据库底层存储结构:
b+树 其实是b-树的一个变种
b-树类似于2,3-二分查找树,但都是有序的
引擎索引结构为b+树,其数据域存储的内容为实际的数据地址,也就是说索引和实际的数据是分开的,只不过用索引指向了它的数据<非聚集索引>

数据库索引(以下是我的一点理解):
唯一索引:不允许两行具有相同的索引值,如employee表 中,员工的姓氏若加唯一索引,则不允许同姓人出现;

主键索引:一种特殊的唯一索引,用来标识表中的每一行<自增主键,快速访问数据 主键ID 既是索引,也是约束,同时也可缓存中的键值>;(小数量的表中不建议建立索引,一般查询优化器在遍历用于搜索数据的索引时,花费时间可能比简单表的扫描还长)

全文索引:建立一个词库,在文章中查找每个词条的出现频率的位置,然后把这些信息按词库归纳,相当于建立了一个以词库为目录的索引;

哈希索引:建立在哈希表的基础上,它只是对使用了索引中的每一列的精确查找有用,(每一行,存储引擎会计算出被索引的哈希码);

1 0