学生表 Student

id(编号) name(名字) age(年龄) height(身高)
1 Tommy 26 170
2 Jerry 23 180
3 Frank 30 160

如表所示,这里只是呈现了3条数据,我们这里假设有1万条数据,

查询年龄25岁以上,身高170以上的全部学生

Select * from Student where age > 25 and height > 170;//正常情况下可以这么写,

假设1:年龄在25岁以上的有8000个学生,而身高170以上的只有10个学生,

上述的SQL的执行顺序和查询的行数应该是:

1.先查询年龄25岁以上的学生,结果有8000条记录,

2.再查询身高170以上的学生,就得在8000条结果里再次判断,最坏的可以遍历8000次左右,这效率较低

假如更改上述SQL语句where条件字段的顺序,如下:

Select * from Student where height > 170 and age > 25;

那么结果将是:

1.首先是查询出身高170以上的学生,结果只有10个;

2.然后再在这10个结果中查询出年龄大于25岁的学生,这样遍历的次数一下子就减少了很多很多

总结:所以,千万不要以为where语句中字段的顺序可以随便乱写,应该结合具体情况来安排好顺序,以使效率更高,

当然,如果想效率进一步提高,应该在这两个字段上建立索引 (题外: 索引的建立以及 什么条件下索引才会被调用)

MySQL优化--where条件字段的顺序对效率的影响 (02)相关推荐

  1. MySQL优化之大字段longtext、text引发的生产问题

    背景 对接多个外部接口,需要保存请求参数以及返回参数,方便消息的补偿,因为多个外部接口,多个接口字段都不统一,整体使用一个大字段(longtext)进行存储,但是当数据只有40w的时候查询速度就非常慢 ...

  2. MySQL查询时条件的顺序_mysql中查询条件的先后顺序问题?

    听一个讲座,说查询条件的顺序影响查询速度,比如一个先运行一个高门槛的条件,后低门槛,运行速度会相对快,请问有这种事么? 那么我在写thinkphp的查询语句的时候,是不是应该把高门槛的放在前面查询? ...

  3. mysql函数做条件_MySQL语句优化(三):避免条件字段做函数操作

    今天跟各位分享一个生产环境慢查询的例子,是一个比较典型的"条件字段使用了函数导致无法走索引"的例子. 一.定位慢查询 首先发现慢查询告警,通过运维平台看到慢查询主要是下面这条:SE ...

  4. mysql字段简索引_3万字总结,Mysql优化之精髓

    本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降. ...

  5. mysql组合索引与字段顺序

    转自:http://www.cnblogs.com/sunss/archive/2010/09/14/1826112.html 很多时候,我们在mysql中创建了索引,但是某些查询还是很慢,根本就没有 ...

  6. mysql where 条件先后_sql语句 where 后条件执行先后顺序

    针对mysql,其条件执行顺序是 从左往右,自上而下 针对SQL server.orcale,其条件执行顺序是从右往左,自下而上 1.mysql where执行顺序是从左往右执行的,在数据量小的时候不 ...

  7. mysql where varchar_MySQL数据库之MySQL索引使用:字段为varchar类型时,条件要使用''包起来...

    本文主要向大家介绍了MySQL数据库之MySQL索引使用:字段为varchar类型时,条件要使用''包起来 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 结论: 当MySQL中 ...

  8. Mysql 拼接多个字段作为查询条件查询方法

    最近工作中需要把多个字段拼接作为查询条件查询,特此记录便于日后查阅. <select id="listByProgramCodeList" resultType=" ...

  9. SQL优化之组合索引中字段的顺序

    SQL优化之组合索引中字段的顺序 记一次SQL优化:组合索引中字段顺序有讲究,越离散的字段越靠前,哪个列可以降低索引扫描成本放在前面. Refer:https://blog.csdn.net/pan_ ...

最新文章

  1. 设计模式(二)__装饰设计模式
  2. 程序员究竟该如何提高效率
  3. mysql 优化 类型_MySQL数据类型的优化选择
  4. python 手机测试_python脚本如何测试手机
  5. 向数据库中导入AWR数据
  6. 常用netbeans快捷键
  7. php梯度区间计算,快速计算梯度的魔法--反向传播算法
  8. spark的数三角形算法_数据算法 Hadoop Spark大数据处理技巧 PDF 下载
  9. opencv 阈值分割_用 OpenCV 去除图片中的水印,骚操作!
  10. 剑指 Offer59-I-滑动窗口的最大值
  11. 中兴myos和鸿蒙,继华为鸿蒙系统以后!中兴再次发布新系统MyOS:可媲美苹果
  12. zeptojs库解读1之整体框架
  13. 数字电路:常见的锁存器浅析
  14. OpenCV—Python Retinex图像增强算法
  15. 计算机单位kb和m比较,G、GB、KB、M和MB是怎么回事?
  16. Switch Transformer模型解读-Introduction
  17. Kinect_人脸识别
  18. 微信开发创建公众号或小程序菜单45064: no permission to use weapp in menu rid:XXXXXXX
  19. 图表示学习之时序的事件和节点动态
  20. 求:生意参谋 data 破解,最好是用php

热门文章

  1. python类介绍_python类介绍
  2. mysql 删除数据后myd_Windows下的MySQL删除data文件夹后……
  3. Linux下Nginx编译安装过程详解
  4. Kafka:分布式消息队列的抽象模型
  5. java $ 用法_Java的Volatile实例用法及讲解
  6. 三种方法实现Linux系统调用方法分享
  7. Centos 配置mailx使用外部smtp发送邮件
  8. BZOJ2815: [ZJOI2012]灾难
  9. Cocoa之NSWindow常用总结
  10. 6.1 C/S 架构介绍