以下回复可能有需要更正的地方

“表引擎在 innodb 的情况下建立 age、sex 的联合索引即可,innodb 会在建立索引时生成 btree 数据结构,这个数据结构上会隐式的加上主键“

这是主键索引与二级索引之间的关联 ID,个人理解不是隐式,而是显式

“搜索时在这个索引上搜索来找到主键 (索引顺序是 age,sex,id),在通过主键找到数据”

1、索引顺序更准确的应该是 age_sex,id

2、是否需要通过主键找到数据,取决于是否需要回表,如果索引上已经可以拿到查询的所有数据,则不需

要回表

”文中的 SQL 语句 select * from students where sex=1 and age >10 order by id desc 使用不到 id 的原因,是因为 age 是范围查找,如果是 age=xx 就可以用的上了,题主可以去找些关于表引擎的介绍 (高性能 MySQL 第五章 5.3.5 节)“

1、《高性能 MySQL》第五章确实有关于 order 最左、第一个范围等不能使用索引等说明。

2、结合自己的知识与测试后的结果是,范围查询 order by id,未出现 using filesort 等 order 未使用到索引的情况。

// 创建表

CREATE TABLE `t` (

`id` int(11) NOT NULL,

`city` varchar(16) NOT NULL,

`name` varchar(16) NOT NULL,

`age` int(11) NOT NULL,

PRIMARY KEY (`id`),

KEY `city` (`city`)

) ENGINE=InnoDB;

// 执行的 SQL

desc select id,city from t where city in('杭州','北京') order by 'id'

执行结果

以下是自己整理的 MySQL order 是否能使用到索引的条件,当然还有其它因素:

1、排序的字段是 有序 的

2、优化器 认为走索引更快,order 最终才会走索引

3、where 与 order 会共同影响(这方面的知识欠缺)

mysql字符串索引如何排序_MySQL 建立索引的时候如何排序?相关推荐

  1. mysql删除索引很慢_mysql建立索引删除索引很慢的解决_MySQL

    bitsCN.com mysql建立索引删除索引很慢的解决 目前情况 建立索引非常慢,需8分钟... 目前环境: ---------------- table行: 30W 版本5.0.45-commu ...

  2. mysql按升序创建索引_MySQL建立索引的基础规则

    1.mysql索引(基础与规则) 索引规则: 一.MySQL建表,字段需设置为非空,需设置字段默认值. 二.MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL. 三.MySQL建表 ...

  3. mysql key value 排序_MySQL利用索引优化ORDER BY排序语句的方法

    创建表&创建索引 create table tbl1 ( id int unique, sname varchar(50), index tbl1_index_sname(sname desc ...

  4. mysql 建立索引_mysql建立索引的原则

    1.选择唯一性索引 唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录.例如,学生表中学号是具有唯一性的字段.为该字段建立唯一性索引可以很快的确定某个学生的信息.如果使用姓名的话,可能存在同 ...

  5. mysql 建立索引的例子_mysql建立合适的索引的例子

    在mysql数据库中,其实建索引也是一门学问,一个表中,索引并不是越多越好,而是适合你的业务才最重要.那么建立索引的时候,我们应该从以下几点去考量. 1. 索引字段越小越好,像varchar(10)肯 ...

  6. mysql引用表无效列_Mysql使用索引可能失效的场景

    1.WHERE字句的查询条件里有不等于号(WHERE column!=-),MYSQL将无法使用索引 2.类似地,如果WHERE字句的查询条件里使用了函数(如:WHERE DAY(column)=-) ...

  7. mysql数据库索引的作用_mysql数据库索引和引擎

    1. 数据库索引 1.1 索引作用 当我们在数据库表中查询数据时,若没有索引,会逐个遍历表格中的所有记录,表格中数据记录量大时很耗时.建立索引就像创建目录一样,直接通过索引找到数据存储位置,加快查找. ...

  8. mysql like 多个条件_MySQL高性能索引策略

    索引类型 从物理存储角度: 聚集索引 InnoDB 叶节点包含了完整的数据记录.这种索引叫做聚集索引.因为InnoDB的数据文件本身要按主键聚集,所以InnoDB要求表必须有主键(MyISAM可以没有 ...

  9. MySQL索引介绍,普通索引,全文索引,空间索引,多列索引使用原则,建立索引常用的规则

    转自:https://blog.csdn.net/tomorrow_fine/article/details/78337735 1.MySQL在创建数据表的时候创建索引 在MySQL中创建表的时候,可 ...

最新文章

  1. 新来的同事问我 where 1=1 是什么意思
  2. DevExpress的TreeList实现自定义右键菜单打开文件选择对话框
  3. qsort(),sort()排序函数
  4. BSS段 data段 text段 堆heap 和 栈stack
  5. Linux服务器重启失败,报错Readonly File system
  6. C#设计模式之13-职责链模式
  7. Pytorch:优化器
  8. Hbuilder--让手爽,飞一般的编码(二)
  9. ora hash oracle官网,oracle计算hash值
  10. 女程序员做了个梦,神评论。。。
  11. web页面移动端键盘弹出后对页面布局的影响
  12. NoSQL数据库应用
  13. C语言程序设计赵山林高媛,C语言程序设计(工业和信息化普通高等教育“十二五”规划教材立项项目)(赵山林高媛)资料.doc...
  14. 阿里云压缩包无法分享解决方案
  15. 如何在终端里面使用ping来查局域网活动ip
  16. 文笔很差系列4 - Kris Kremo
  17. AI时代——人工智能技术图谱,它来啦(机器学习+深度学习学习路线)
  18. eclipse 32位换成64位 maven tomcat svn 集成
  19. php生成二维码图片
  20. Redis快速入门,一篇带你系统入门,学会即加薪

热门文章

  1. 云原生中间件 -- MongoDB Operator 篇
  2. php取qq空间日志说说,qq空间唯美句子说说心情
  3. kolla openstack nova GPU 实现
  4. 大家知道星图地球开发者平台是如何实现云上便捷应用的吗?
  5. Miracast投屏协议深入剖析
  6. pdm系统是归档服务器吗,PDM系统与档案管理系统集成方法研究
  7. a22_scala 伴生对象 伴生类
  8. 【Android】打开红包、信封动画
  9. 笛卡尔与人工智能:“我思故我在”作为智能测试标准的可能性
  10. [230508]托福听力真题TPO66|对话精听|对话+讲座词汇总结|19:30~20:10 20:50~23:00 8:30~9:40