where执行顺序是从左往右执行的,在数据量小的时候不用考虑,但数据量多的时候要考虑条件的先后顺序,此时应遵守一个原则:排除越多的条件放在第一个。

在用MySQL查询数据库的时候,连接了很多个过滤条件,发现非常慢。例如:SELECT … WHERE p.languages_id=1 AND t.type=1 AND p.products_id IN (472,474),这样查询需要20多秒,虽然在各个字段上都建立了索引。用分析Explain SQL一分析,发现在第一次分析过程中就返回了几万条数据:WHERE p.languages_id=1 ,然后再依次根据条件缩小范围。

然后稍微改变一下WHERE字段的位置之后,速度就有了明显地提高:WHERE p.products_id IN (472,474) AND p.languages_id=1 AND t.type=1,这样第一次的过滤条件是p.products_id IN (472,474),它返回的结果只有不到10条,接下来还要根据其它的条件来过滤,自然在速度上有了较大的提升。经过实践发现,不要以为WHERE中的字段顺序无所谓,可以随便放在哪,应该尽可能地第一次就过滤掉大部分无用的数据,只返回最小范围的数据。

mysql where执行顺序_mysql where执行顺序相关推荐

  1. mysql查询解析过程_MySQL查询执行过程详解

    查询是用户通过设置某些查询条件,从表或其他查询中选取全部或者部分数据,以表的形式显示数据供用户浏览.查询是一个独立的.功能强大的.具有计算功能和条件检索功能的数据库对象.MySQL数据库中,MySQL ...

  2. mysql和oracle执行计划_mysql explain执行计划详解

    原文链接:https://www.cnblogs.com/xiaoboluo768/p/5400990.html mysql> explain  select t1.kprq from    p ...

  3. mysql 按照in id顺序_Mysql查询结果顺序按in()中ID的顺序排列的案例区分

    软件安装:装机软件必备包 SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言.在使用它时,只需要发出& ...

  4. mysql oracle 查询语句执行顺序_MySQL sql语句执行顺序

    (8)     DISTINCT (1)     FROM (3)      JOIN (2)     ON (4)     WHERE (5)     GROUP BY (6)     HAVING ...

  5. mysql命令书写顺序_MySQL SQL语句书写顺序和执行顺序

    SQL语句书写顺序和执行顺序 (7) SELECT (8) DISTINCT (1) FROM (3) JOIN (2) ON (4) WHERE (5) GROUP BY (6) HAVING (9 ...

  6. mysql关键字使用顺序_MySQL数据库之单表查询中关键字的执行顺序

    MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 select distinct from where group by having order by limit 2 执行顺序 from ...

  7. oracle和mysql文件怎么打开_Oracle vs Mysql--架构、sql查询执行流程及SQL解析顺序区别说明-sql文件怎么打开...

    概述 之前分享的主要是Oracle上的一些内容,那么mysql又有哪些地方不一样呢?下面从MySQL总体架构.sql查询执行流程和语句执行顺序来看一下.. 01 架构总览 下面看一下mysql的架构图 ...

  8. 步步深入:MySQL架构总览-gt;查询执行流程-gt;SQL解析顺序

    转载自 https://www.cnblogs.com/annsshadow/p/5037667.html 前言: 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料 ...

  9. mysql 执行顺序 SQL语句执行顺序分析

    最近在做一个数据库的大作业,算是复习了下MySql里面比较复杂的一些语句的用法,如Left Join之类的.在这里就不对具体语法进行记录了,希望能在以后经常用到,而不是隔好长时间用一次.在这里就记录下 ...

最新文章

  1. 探索多媒体开发最新最佳实践,我们在深圳等你
  2. c mysql 查询超时设置_MySQL查询超时的设置方法
  3. 最短路径之Dijkstra算法和Floyd-Warshall算法
  4. 【Linux常用指令整理8】别名、输入/输出重定向、管道、命令连接符、命令替换符...
  5. linux下校正系统时间,date linux系统校正时间
  6. ruby 读取文本_使用Ruby进行文本处理
  7. 【Arduino实验08 红外传感器】
  8. 视频号还是直播?2021年微信财富密码预言
  9. 推荐一款快速生成海报的微信小插件
  10. 使用树莓派实现动作捕捉、抓拍并存储照片
  11. 进击的JavaScript(对象,继承,单例模式)
  12. Zotero使用指南04:群组功能
  13. color a dir/s_【单选题】多级放大电路级联的级数越多,则放大器的总电压放大倍数越大,通频带越()。 A. 大 B. 不变 C. 小...
  14. java 正则 括号外_正则表达式匹配括号外的符号及数据
  15. cocos creater 鸿蒙 音频卡死 播放失败 不回调
  16. 如何使用 CSS 定位 HTML 元素
  17. 金纳米棒Aunanorods长径比可调|水溶液呈现出蓝色、棕色、棕红色等颜色
  18. 定位追踪器百科:宠物、老人、小孩、汽车通用的定位器
  19. Vlan的概述与优势
  20. PMP 考试一定要报培训班吗?求靠谱培训机构,最好是自己考过的!

热门文章

  1. 韩顺平 java笔记 第3讲 运算符 流程控制
  2. linux初学者-软件安装与管理篇
  3. 转:关于Apache与Nginx的优势比较(经典)
  4. php操作mysql数据库的基本类
  5. ATL COM类之激活
  6. 8位深, 16位深,24位深,32位深图片显示原理及对比
  7. 用JAVA写出1到999的随性化数_请详细翻译一个简单的JAVA程序问题
  8. python里进度条编程_Python实现控制台中的进度条
  9. 一些提高生产力的 Linux 命令和技巧
  10. 音视频之hls rtmp rtsp 视频流测试地址