› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
qumingkunnan
V2EX  ›  MySQL

请教执行计划与实际执行的差异

  •  
  •   qumingkunnan · Jun 6, 2020 · 2963 views
    This topic created in 2303 days ago, the information mentioned may be changed or developed.
    • 有张表共一百多万数据,primary key (col1,col2,col3),执行计划显示条件 WHERE (col1,col2,col3) in ((v1,v2,v3),(v4,v5,v6,)……)走了索引,IN 的组合在 10 个以内,实际执行时花费 80 秒左右
    • 发现后改为了 ( col1=v1 AND col2 = v2 AND col3 = v3 ) OR (col1=v4,col2=v5,col3=v6)……的形式,查询变快。
    • 想知道两个方式的区别,以及执行计划有可能不准确吗?
    6 replies  •  2020-06-09 18:33:42 +08:00
    lpts007
        1
    lpts007  
       Jun 6, 2020
    没法回答。按理说不应该这个表现。软硬件配置上一下,sql 、表结构、explain 结果上一下。
    qumingkunnan
        2
    qumingkunnan  
    OP
       Jun 8, 2020
    @lpts007 MySQL 版本 5.6 http://sqlfiddle.com/#!9/a1a69f/5 给了脱敏后的结构和 SQL,执行计划二者基本没区别,但是真的执行时间还是和我题中描述的那样,硬件配置也给不了,没有这个服务器的权限,抱歉
    qumingkunnan
        3
    qumingkunnan  
    OP
       Jun 8, 2020
    @lpts007 这个问题,第一种执行计划扫描了所有行,第二种只有 OR 关系个数的行被扫描,应该是这个问题了。但是不知道为什么第一种会扫描全表的行
    lpts007
        4
    lpts007  
       Jun 8, 2020 via Android
    查询快的那种,到底多快? 70 多秒?
    慢的那个 force index 试一下,我看着两个语句也确实一样。
    lpts007
        5
    lpts007  
       Jun 9, 2020
    @qumingkunnan 另外感觉挺奇怪的 你这个语句。 col1,2,3 是主键,那还 group by col1,2,3 干啥 sum 也没什么用啊,根本不需要。是不是脱敏脱得过头了 跟原意不一致了?
    qumingkunnan
        6
    qumingkunnan  
    OP
       Jun 9, 2020 via Android
    @lpts007 嗯,是有些不一致了,是我的问题,多谢了!我比较纠结的是两种写法的执行效率问题,确认了多列 in 确实会执行更慢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2639 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:35 · PVG 20:35 · LAX 05:35 · JFK 08:35
    ♥ Do have faith in what you're doing.