Mysql索引

  • Innodb页结构,一页为16kb

  • 在插入数据到用户数据区域时会进行排序
  • 页目录分组存储数据区域每一组的第一个元素索引值和地址,每组默认为6个元素

  • 当插入数据在当前页存不下时会新增一页,然后根据插入数据的主键排序,如果为最大值则直接插入到新页里面,如果不为最大,则会插入当前页,将当前页最后一个数据插入到新页中,(Innodb推荐用自增主键)。

  • 当查询一个数据时从第一页开始查询当前页页目录,如果没有则继续查找下一页的也目录,以此类推(每次取一页数据的时候就要进行一次磁盘IO,还是效率很低)

  • 参照页目录,新建一个页(也是16kb),对页链表进行分组,然后在新建的页存储每组第一页的值和地址(B+树结构)

  • 如果一页只能存两条数据

  • 最后一层的页叫做数据页,上面两层的页叫做索引页(聚簇索引)

  • 创建联合索引时和创建主键索引的方式一样,但是联合索引存放的元素为主键的值

posted @ 2022-11-22 14:22  youmo~  阅读(22)  评论(0编辑  收藏  举报