Mysql索引
- Innodb页结构,一页为16kb
- 在插入数据到用户数据区域时会进行排序
- 页目录分组存储数据区域每一组的第一个元素索引值和地址,每组默认为6个元素
- 当插入数据在当前页存不下时会新增一页,然后根据插入数据的主键排序,如果为最大值则直接插入到新页里面,如果不为最大,则会插入当前页,将当前页最后一个数据插入到新页中,(Innodb推荐用自增主键)。
- 当查询一个数据时从第一页开始查询当前页页目录,如果没有则继续查找下一页的也目录,以此类推(每次取一页数据的时候就要进行一次磁盘IO,还是效率很低)
- 参照页目录,新建一个页(也是16kb),对页链表进行分组,然后在新建的页存储每组第一页的值和地址(B+树结构)
- 如果一页只能存两条数据
- 最后一层的页叫做数据页,上面两层的页叫做索引页(聚簇索引)
- 创建联合索引时和创建主键索引的方式一样,但是联合索引存放的元素为主键的值