V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
guyeuro
V2EX  ›  问与答

mysql 中 where 条件从左到右按顺序执行,为何最左边的执行最快?

  •  
  •   guyeuro · 2017-06-27 01:06:13 +08:00 · 5023 次点击
    这是一个创建于 2519 天前的主题,其中的信息可能已经有所发展或是发生改变。

    譬如 where price_apple>5 and price_orange>5 price_apple>5 这个条件执行比后面的快 原理是什么?

    11 条回复    2017-06-28 02:40:33 +08:00
    billlee
        1
    billlee  
       2017-06-27 01:14:57 +08:00
    你这是从哪里看来的歪理邪说?
    mkdong
        2
    mkdong  
       2017-06-27 01:23:14 +08:00 via iPhone
    可能…加了索引?
    andrewpsy
        3
    andrewpsy  
       2017-06-27 01:53:19 +08:00
    SQL 水平太差,没看懂 where 句 :<
    yangqi
        4
    yangqi  
       2017-06-27 03:01:19 +08:00
    先把问题表达清楚了。。。
    shiji
        5
    shiji  
       2017-06-27 04:39:47 +08:00
    用 explain 语句解释一下,你就会发现。。。MySQL 并不管你 where 里面的顺序
    stabc
        6
    stabc  
       2017-06-27 05:37:25 +08:00
    问为什么之前先搞清楚是什么。
    msg7086
        7
    msg7086  
       2017-06-27 05:48:44 +08:00
    为何你说最左边的执行最快?根据是什么?
    imherer
        8
    imherer  
       2017-06-27 11:15:45 +08:00
    哪些属于左边?🤣
    guyeuro
        9
    guyeuro  
    OP
       2017-06-27 12:48:49 +08:00
    msg7086
        10
    msg7086  
       2017-06-28 02:34:56 +08:00
    @guyeuro 整篇文章我就没看到 MySQL 这个词。
    msg7086
        11
    msg7086  
       2017-06-28 02:40:33 +08:00
    节选自标准文档。

    ANSI SQL Draft 2003 5WD-01-Framework-2003-09.pdf

    6.3.3.3 Rule evaluation order

    ...

    Where the precedence is not determined by the Formats or by parentheses, effective evaluation of expressions is generally performed from left to right. However, it is implementation-dependent whether expressions are actually evaluated left to right, particularly when operands or operators might cause conditions to be raised or if the results of the expressions can be determined without completely evaluating all parts of the expression.

    说是通常可以选择从左到右进行计算,但是具体是否要从左到右计算,是由数据库软件自行决定的。如果数据库认为优先计算其他表达式可以提高计算速度,那么他可以自行选择求值顺序。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2588 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 13:53 · PVG 21:53 · LAX 06:53 · JFK 09:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.