V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
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
Mac
V2EX  ›  MySQL

是不是只要 group by 就必定 using temp?

  •  
  •   Mac · 2019-01-15 11:15:13 +08:00 via Android · 3540 次点击
    这是一个创建于 2135 天前的主题,其中的信息可能已经有所发展或是发生改变。

    myisam 引擎,一个很简单的 select 语句,列已加了索引

    5 条回复    2019-01-15 16:47:28 +08:00
    glacer
        1
    glacer  
       2019-01-15 11:47:53 +08:00   ❤️ 1
    using temp 通常只是为了排序,如果在 group by 的时候数据已经排序,那么就不需要 using temp。所以看你的索引是否能在 group by 被使用到。
    Mac
        2
    Mac  
    OP
       2019-01-15 12:00:04 +08:00 via Android
    @glacer 那是不是意味着所有 select 的列都加一个联合索引?
    Ashitaka4
        3
    Ashitaka4  
       2019-01-15 13:56:25 +08:00   ❤️ 1
    @Mac 顺序也要注意
    saulshao
        4
    saulshao  
       2019-01-15 16:03:00 +08:00   ❤️ 1
    如果你经常用这个固定的 group by,后面的列都是一致的,确实应该要有联合索引,但是大部分情况下 group by 后面的列不是来自同一个表......
    Mac
        5
    Mac  
    OP
       2019-01-15 16:47:28 +08:00 via Android
    @saulshao 嗯理解了,跨表是无论如何都要建立临时表了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3658 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 10:45 · PVG 18:45 · LAX 02:45 · JFK 05:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.