mysql索引排序(innoDB引擎)

mysql innoDB索引排序


        创建合适索引能使mysql查询语句排序时使用索引排序,这能极大优化排序的速度。 如何创建合适的索引与存储引擎以及服务层的逻辑有关,这里仅仅展示mysql8.0以及使用InnoDB引擎的情况。


        InnoDB底层是采用B+树存储索引和索引数据,将索引和数据(包含所有列的数据)存放在一起,所以被称之为聚簇索引,因为是根据主键来组织索引,所以又被称之为主键索引或一级索引,而其它另外创建的索引只包含主键以及用户自定义包含的列的数据而并非包含所有列的数据,所以被称之为二级索引。二级索引如果没有包含 select 后面要查找的列,那么是需要通过二级索引中的主键再次回一级索引查找二级索引未包含的列的数据的。了解了基本的存储结构有利于记忆一些排序优化规则。


         创建表用于测试:

创建表
首先分别用first_name和id排序,发现前者的type是null,后者的type是index。说明id用了索引排序,而first_name没有。很简单,因为id被设置为主键,用的是主键索引。

接着按first_name在前,last_name在后的的顺序创建一个二级索引并测试,发现select *语句依然没有走索引排序。而select id, first_name&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值