안녕하세요.
SELECT seq FROM summaryMedia_test WHERE date_summary >= '2019-10-02' AND date_summary <= '2019-10-31' AND account_id = '11111111111'
위와같은 기본쿼리 결과가 최종적으로 range 안의 데이터를 group by 하여 sum을 하는데 문제가 90만row가 넘기에 파티셔닝을 진행하고자합니다.
분할하고자 하는 기준은 위 결과를 빨리 뽑을 수 있도록 월별로 한번 나눠주고 account_id로도 나누고싶습니다.
어떻게 해야할까요?? date_summary는 DATE 타입이며 account_id는 varchar 타입 입니다.
총 row수는 3000만이 약간 넘습니다.
그렇다면 월단위로 파티셔닝을 진행한다고하면
ALTER TABLE summaryMedia_test PARTITION BY RANGE (YEAR(`date_summary`)) SUBPARTITION BY HASH (MONTH(`date_summary`)) SUBPARTITIONS 12 ( PARTITION p2018 VALUES LESS THAN (2019) ENGINE = InnoDB, PARTITION p2019 VALUES LESS THAN (2020) ENGINE = InnoDB );
이런식으로 진행이되는건가요? 아니라면 쿼리조언좀 부탁드리겠습니다.