MySQL索引创建

索引概念

    1.主键索引
       主键列创建的索引叫一级索引,一级索引创建的B+树结构的叶子节点存储的是整行数据
       主键和整行数据都存储在叶子节点的索引类型叫聚簇索引
       每创建一个索引就会生成一个对应的B+树

    2.二级索引
       其它列创建的索引都叫二级索引,二级索引创建的B+树结构的叶子节点存储的是主键值,不包含整行数据
       所以通过二级索引查询后只能得到主键值,还得通过主键值查询整行数据。这个过程叫回表


   索引查询机制
      1.通过主键索引查询可以直接查询到所有整行数据
      2.通过二级索引只能先查到主键,然后通过主键值查询到其它列的值

   回表操作
      一次回表查询会涉及到操作到两棵不同的B+树
      所以在使用二级索引查询的时候如果直接只查主键的值便不要进行回表查询select id from tb where name >'a'

   3.组合索引
      建立组合索引,只查询组合索引中的列和主键也可以不需要回表操作
      因为组合索引的叶子节点存储的有组合索引列的值和主键值.按组合顺序从左往右依次存储排序值

         

 回表查询

          只有使用了二级索引查询才会有回表操作发生

            

 组合索引

               

               

 索引的用途

         

       

      

 

posted @ 2022-08-19 15:35  不懂123  阅读(105)  评论(0编辑  收藏  举报