我有用户和购买(分别为10^6和10^8行)的两个大的表。 我使用mySql在下面运行查询,但需要很长时间来计算! 加速执行的最佳方法是什么?我应该使用索引还是将查询拆分为两个查询?优化SQL组由和连接查询
CREATE TABLE user(
uID INTEGER,
countryCode varchar(2)
);
CREATE TABLE purchases(
uID INTEGER,
productID INTEGER,
price INTEGER
);
SELECT U.countryCode AS country, SUM(P.price) AS amount
FROM user U, purchases P
WHERE U.uid = P.uid
GROUP BY U.countryCode
ORDER BY U.countryCode ASC;
我想这个问题是在类型:全部。解释给我:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE U ALL NULL NULL NULL NULL 9653 Using temporary; Using filesort
1 SIMPLE P ALL NULL NULL NULL NULL 97816 Using where; Using join buffer
上'countryCode'添加一个索引,然后执行'解释选择...'看到,如果你需要更多的索引('price'太)。 –
这些需要'TEXT'数据类型的国家/地区代码需要多长时间? –
只是几个字母......而我只是更改了varchar(2)中的TEXT – user2895890