Mac
V2EX  ›  MySQL

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

By Mac at 2019 年 1 月 15 日 · 4579 次点击

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

5 条回复  •  2019-01-15 16:47:28 +08:00
glacer
   1
glacer  
   2019 年 1 月 15 日   ❤️ 1
using temp 通常只是为了排序,如果在 group by 的时候数据已经排序,那么就不需要 using temp。所以看你的索引是否能在 group by 被使用到。
Mac
   2
Mac  
OP
   2019 年 1 月 15 日 via Android
@glacer 那是不是意味着所有 select 的列都加一个联合索引?
Ashitaka4
   3
Ashitaka4  
   2019 年 1 月 15 日   ❤️ 1
@Mac 顺序也要注意
saulshao
   4
saulshao  
   2019 年 1 月 15 日   ❤️ 1
如果你经常用这个固定的 group by,后面的列都是一致的,确实应该要有联合索引,但是大部分情况下 group by 后面的列不是来自同一个表......
Mac
   5
Mac  
OP
   2019 年 1 月 15 日 via Android
@saulshao 嗯理解了,跨表是无论如何都要建立临时表了
› 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
© 2026 V2EX · 35ms · 3.9.8.5