사용자 및 구매에 대한 두 개의 큰 테이블 (각각 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'에 색인을 추가하고'explain select ...'를 실행하여 색인이 더 필요한지 확인하십시오 ('price'도 마찬가지입니다). –
'TEXT'데이터 유형이 필요한 국가 코드는 얼마 동안입니까? –
그냥 몇 글자 ... 그리고 방금 varchar (2)에서 텍스트를 변경했습니다 – user2895890