(0) select * from mytable where a=3 and b=5 and c=4; abc三个索引都在where条件里面用到了,而且都发挥了作用

(1) select * from mytable where c=4 and b=6 and a=3; 这条语句列出来只想说明 mysql没有那么笨,where里面的条件顺序在查询之前会被mysql自动优化,效果跟上一句一样

(2) select * from mytable where a=3 and c=7; a用到索引,b没有用,所以c是没有用到索引效果的

(3) select * from mytable where a=3 and b>7 and c=3; a用到了,b也用到了,c没有用到,这个地方b是范围值,也算断点,只不过自身用到了索引

(4) select * from mytable where b=3 and c=4; 因为a索引没有使用,所以这里 bc都没有用上索引效果

(5) select * from mytable where a>4 and b=7 and c=9; a用到了 b没有使用,c没有使用

(6) select * from mytable where a=3 order by b; a用到了索引,b在结果排序中也用到了索引的效果,前面说了,a下面任意一段的b是排好序的

(7) select * from mytable where a=3 order by c; a用到了索引,但是这个地方c没有发挥排序效果,因为中间断点了,使用 explain 可以看到 filesort

(8) select * from mytable where b=3 order by a; b没有用到索引,排序中a也没有发挥索引效果

mysql多列索引不全用,MySQL多列索引的生效规则相关推荐

  1. c mysql 索引_MySQL 多列索引的生效规则

    mysql中 myisam,innodb默认使用的是 Btree索引,至于btree的数据结构是怎样的都不重要, 只需要知道结果,既然是索引那这个数据结构最后是排好序:就像新华字典他的目录就是按照a, ...

  2. mysql 多列索引的生效规则

    mysql中 myisam,innodb默认使用的是 Btree索引,至于btree的数据结构是怎样的都不重要, 只需要知道结果,既然是索引那这个数据结构最后是排好序:就像新华字典他的目录就是按照a, ...

  3. mysql 主表某一列 小于某一个表的两列之和_关于MySQL索引知识与小妙招

    1.1 索引的优点 大大减少了服务器需要扫描的数据量,加快数据库的检索速度 帮助服务器避免排序和临时表 将随机io变成顺序io 1.2 索引的用处 速查找匹配WHERE子句的行 从considerat ...

  4. mysql普通索引自增_mysql中联合索引中的自增列的增长策略

    <深入理解MySQL>中一段介绍MyISAM存储引擎中自动增长列的示例,如下 1 mysql>create table autoincre_demo2 -> (d1 small ...

  5. mysql百万数据根据索引查询_mysql创建多列索引查询百万表数据的性能优化经验分享...

    最近发现最代码网站中的收到的评论,提到我的,心情被赞的查询异常缓慢,通过nginx日志发现响应时间快的在5s,慢的有13s,终于忍无可忍花时间来解决了. 执行explain之后的截图如下: 可以看到p ...

  6. mysql数据库索引 分区_数据库设计 – 要索引的列太多 – 使用mySQL分区?

    我不是 MySQL专家.我的重点是Oracle,但我一直在使用分区多年,我发现你的建议用途非常合适,但不是主流对分区的理解. 低基数列的索引 暂且不谈索引合并.假设您的活动行有点分散,并且与非活动行数 ...

  7. mysql 创建分区索引吗_MySQL分区字段列有必要再单独建索引吗?

    大家都知道对于分区字段必须是主键的一部分,那么建了复合主键之后,是否需要对分许字段再单独添加一个索引呢?有没有效果?本文主要给大家介绍了关于MySQL分区字段列是否有必要再单独建索引的相关资料,文中通 ...

  8. mysql 创建索引失败_mysql创建多列索引及优化 - 没有所谓的失败!除非你不再尝试! - PHPChina ......

    什么是索引? 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存.如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录.表里面 ...

  9. mysql两列唯一索引吗_mysql多字段唯一索引

    项目中需要用到联合唯一索引: 例如:有以下需求:每个人每一天只有可能产生一条记录:处了程序约定之外,数据库本身也可以设定: 例如:user表中有userID,userName两个字段,如果不希望有2条 ...

最新文章

  1. html无序列表空心圆_列表样式的使用CSS入门基础(018)
  2. sql镶嵌查询_sql数据库的嵌套查询
  3. PTA 基础编程题目集 7-19 支票面额 C语言
  4. Java8新特性:接口的默认方法与接口的静态方法
  5. linux获取指定字符,shell 获取用户输入指定范围的单个字符的两种方法
  6. 【转载】linux进程及进程控制
  7. js_long.php,protobuf.js 与 Long.js的使用详解
  8. svg标签的CSS3动画特效 - 经典特效2
  9. 信号量CSemaphore的使用
  10. Django Bootstrap开发笔记01 - 添加简单网页
  11. Jmeter系列之数据库操作
  12. [Python] L1-029. 是不是太胖了-PAT团体程序设计天梯赛GPLT
  13. bzoj3998 [TJOI2015]弦论
  14. OSS重磅推出OSS Select——使用SQL选取文件的内容
  15. 内容提供者和内容观察者
  16. SpringBoot实战笔记:记一次接口406错误的解决
  17. node生成唯一设备id(node-machine-id)
  18. 智能网联「中国百强供应商」都有谁?8月30-31日现场揭晓
  19. python视频转字符动画_python字符动画
  20. python中怎么编写程序_python写完程序怎么运行

热门文章

  1. CAMB, CosmoMC的安装和使用
  2. easybcd安装Ubuntu
  3. python IO多路复用源码
  4. C#3.0入门系列(五)-之Where操作
  5. MATLAB学习笔记(一)——入门与操作
  6. 脏读和数据库一致性的分析
  7. 使用Android BindingAdapter与InverseBindingAdapter实现SeekBar双向(正向/反向)数据绑定...
  8. 位运算和典型应用详解
  9. mariadb 10.1查看per connection内存消耗
  10. BT觀念分享和常見問題彙整