【发布时间】:2014-03-24 05:12:07
【问题描述】:
我正在尝试运行以下查询,这需要几个小时。我们有一个用于查询的专用服务器(不在本地主机上运行)。
这是一个包含大约 7400 万行的 InnoDB 表。我已经对分组中涉及的两列(TRAN_URN,UCI)进行了索引,希望能够加快查询速度。
insert into data.urn_uci_lookup (TRAN_URN, UCI, `Count`)
select TRAN_URN,UCI, count(*) as `Count`
from data.diablo18
group by TRAN_URN, UCI
这是因为某种原因效率低下吗?我该如何改进它?
编辑:这是解释计划
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE diablo18 ALL \N \N \N \N 74631102 使用临时;使用文件排序
干杯, 卢卡斯
【问题讨论】:
-
解释计划告诉你什么?
-
嗨,吉姆,我到底该如何使用它?以前从未使用过 EXPLAIN PLAN...
-
解释计划添加到原帖
-
只在查询的选择部分执行 EXPLAIN EXTENDED。
-
最大的问题是索引的基数,或者相反,您期望在
count(*)列中的数字。如果您期望count(*)中的大多数行的结果非常低(即(TRAN_URN,UCI) 有多少个不同的值?
标签: mysql performance insert