我有用戶和購買(分別爲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