建立表:

CREATE TABLE `ygzt_test` (

`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,

`a` int(11) NOT NULL,

`b` int(11) NOT NULL,

`c` int(11) NOT NULL,

`d` int(11) NOT NULL,

PRIMARY KEY (`id`),

KEY `a` (`a`,`b`,`c`,`d`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='测试';

一、实验一,无order by

首先加联合索引a,b,c,d

explain select * from ygzt_test where a=1 and b=2 and c=3 and d=4

修改sql:

explain select * from ygzt_test where a>1 and b=2 and c=3 and d=4

type已经由ref降为index

修改索引b,c,d,a

explain select * from ygzt_test where a>1 and b=2 and c=3 and d=4

done

二、实验二,order by

建立索引a,b

explain select * from ygzt_test where a>0 order by b

可以看到,a>0使用了索引,order by b 未使用

修改索引为b,a

explain select * from ygzt_test where a>0   order by b

where 与 order by 都无索引

想起此前order by+select *的问题

这个问题单独拿出来实践下:

修改索引为b

explain select * from ygzt_test order by b

缺点:未使用索引

explain select b from ygzt_test order by b

缺点:只能返回b

explain select b,a from ygzt_test  order by b

缺点:未使用索引

explain select * from ygzt_test FORCE INDEX (b)  order by b

缺点:type也就是index级别

索引b,a

explain select b,a from ygzt_test  order by b

缺点:与强制索引同,只能达到index级别,还加大了索引建立的复杂度

结论:使用强制索引

结论:

1.单列索引中——,>=,between,like(右边模糊)适用索引

2.索引中有范围的,有序性失效,解决方案以实际为准

mysql范围索引_mysql 组合索引中对范围的查询相关推荐

  1. mysql 组合主键索引_mysql 组合索引带主键ID的问题

    场景: mysql 5.7 某表 t_apply_info 上的2个索引,一个组合索引带了 主键字段 ID,另一个是同字段的单列索引 例如: KEY idx_1 (apply_serial_no,id ...

  2. mysql navicat 组合索引_mysql组合索引与字段顺序

    很多时候,我们在mysql中创建了索引,但是某些查询还是很慢,根本就没有使用到索引! 一般来说,可能是某些字段没有创建索引,或者是组合索引中字段的顺序与查询语句中字段的顺序不符. 看下面的例子: 假设 ...

  3. mysql最常用的索引_mysql常用索引

    1.索引 在关系数据库中,索引是一种单独的.物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单.索引的作用相当 ...

  4. mysql 组合索引 or_Mysql_组合索引和单列索引

    一.目标 什么时候使用组合索引,什么时候使用单独索引 组合索引.单独索引区别 组合索引:最左前缀匹配原则 二.前期数据准备 1. 建表 CREATE TABLE `user` ( `uid`int(1 ...

  5. mysql 组合索引 or_mysql索引优化实例(单列索引与组合索引)

    索引一般用于在数据规模大时对查询进行优化的一种机制,对于一般的查询来说,mysql会去遍历整个表,来查询符合要求的结果: 如果借助于mysql索引,mysql会将要索引的字段按照一定的算法进行处理,并 ...

  6. oracle 主键_mysql 组合索引带主键ID的问题

    场景: mysql 5.7 某表 t_apply_info 上的2个索引,一个组合索引带了 主键字段 ID,另一个是同字段的单列索引 例如: KEY idx_1 (apply_serial_no,id ...

  7. MySQL单列索引和组合索引的创建及区别介绍

    MySQL单列索引是我们使用MySQL数据库中经常会见到的,MySQL单列索引和组合索引的区别可能有很多人还不是十分的了解,下面就为您分析两者的主要区别,供您参考学习. 为了形象地对比两者,再建一个表 ...

  8. mysql多列索引(组合索引)特点和使用场景

    mysql多列索引特点和使用场景 单列索引 查看sql的执行计划 索引合并 多列索引 再看sql的执行计划 多列索引的顺序 最左前缀 添加数据的脚本 首先创建一张表,有姓'first_name'.名' ...

  9. MySQL的索引(普通索引、唯一索引,主键索引、组合索引、全文索引、空间索引)相关操作

    目录 索引介绍 Hash索引和B+tree索引的区别 应用场景 索引分类 普通索引 创建单列索引--普通索引(3种语法) 查看数据库中的索引 查看数据表中的索引 删除索引 唯一索引 主键索引 组合索引 ...

最新文章

  1. 身为 Java 程序员必须掌握的 10 款开源工具!
  2. 圆通招java_圆通java程序员面试经验|面试题 - 职朋职业圈
  3. 管理到底是“管人”还是“管事”,百分之九十的人理解有问题
  4. Altium Designer 正反面布元器件
  5. Oracle数据库中的优化方案
  6. 源码分析Handler机制
  7. python图形用户界面设计报告_19.1 Python图形用户界面开发工具包
  8. Tomcat 7 DBCP 配置(MySQL)
  9. STM32F1 GPIO工作原理初探
  10. 初级java程序员怎样快速提升自己
  11. 支付宝否认彭翼捷退出阿里系:在蚂蚁金服出任首席市场官
  12. laravel架构判断id存在与否 存在进行什么操作_基于 Module 的 Laravel API 架构
  13. Linux学习---Day03
  14. Linux下登陆mysql服务器不需要输入账号密码信息
  15. word07 去掉标题前的黑点
  16. 美丽心灵:纪念 John Nash 夫妇
  17. 其实你也可以制作一款专属的书架app,信不信看看就知道
  18. css 中英文换行的相关写法
  19. 多台仪器同步测量软件,ATECLOUD智能云测试平台
  20. 进制之间的快速转换法:8421码及原码反码补码之间的相互转换关系

热门文章

  1. android序列化讲解
  2. 国内手机游戏营收6成靠山寨手机 安卓不赚钱
  3. 利用谷歌语法进行漏洞搜索
  4. 第04章 孩子发热先观察,别着急送医院
  5. 人脸识别外部接口调用
  6. PAT 甲级1129
  7. 【php毕业设计】基于php+mysql+apache的subversion用户管理系统设计与实现(毕业论文+程序源码)——用户管理系统
  8. IntelliJ IDEA快捷菜单设置--show in Explorer
  9. 从精致穷到消费降级,第四消费时代还有多远?
  10. 关于SSM框架搭建出现404错误