赞
踩
索引的数据结构;b+tree,二叉树,红黑树,hash表最终选择b+tree
mysql索引数据结构是b+tree,mysql磁盘节点为16kb(默认)b+tree一个节点为16kb
b+tree图
b+tree查找:(每个节点上的元素都是顺序排列)把根节点放到内存然后折半查找目标元素,找到目标元素所在区间,然后根据该区间的磁盘文件地址找对对应节点,重复上述步骤,找对对应叶子节点,放内存中查找目标元素,取出数据,
myisam硬盘文件.frm(表结构文件),myd(数据文件),myi(索引文件),
innodb硬盘文件;frm(表结构文件),ibd(数据和索引文件)
聚集索引(innodb的主键索引是聚集索引);叶子节点包含了索引记录的全部数据(索引和数据放在一个文件)
非聚集索引;叶子节点包含索引记录的地址(索引和数据不放在一个文件里面)
innodb非主键索引采用非聚集索引叶子节点包含索引和索引所在行的主键,再通过主键索引查找记录
innodb建议建主键,推荐采用整型自增主键。
b+树会自动排序;<
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。