0

我的情况是,我在 Amazon EC2 实例(MYISAM 表)上的 mysql 中有 35,00,00,000 条记录的表,该实例有 5 列。我需要为特定任务的所有列按功能分组

这就是我如何触发查询 select a,b,c,d,sum(f) as e from table a group by a,b,c,d 其中 a 和 b 是整数列,c,d 是字符串列。我也为这些列编制了索引。我有 18GB 的​​可用空间。

但是当我使用解释查看查询时

+----+-------------+-------------+------+---------------+------+---------+------+------  ----+---------------------------------+
| id | select_type | table       | type | possible_keys | key  | key_len | ref  | rows       | Extra                           |
+----+-------------+-------------+------+---------------+------+---------+------+------ ----+---------------------------------+
|  1 | SIMPLE      | TABLE A  | ALL  | NULL          | NULL | NULL    | NULL | 35328984  | Using temporary; Using filesort |
+----+-------------+-------------+------+---------------+------+---------+------+----------+---------------------------------+

从概念上,我知道如果列被索引,mysql 将不会使用临时表。但是解释结果告诉我索引没有用于这个查询。此查询运行了几秒钟,并在抛出错误代码 :28 后终止,该代码提到系统空间不足。

如果我错了,请纠正我,我知道临时表需要的空间比可用空间多。这是否意味着我需要额外的空间来解决这个问题?

4

0 回答 0