MariaDB 인덱스 질문

조회 2,684 · 댓글 1
돌고래돌고래작성자2016년 5월 25일
MariaDB에서 인덱스를 만들어서 쿼리를 최적화 하고 싶은데요,
어떤 원리로 인덱스를 걸어야 하는지 궁금합니다.
예를 들어 아래와 같은 쿼리가 있으면 인덱스는 어떤 속성에 걸어야 할까요?

SELECT c.date, avg(c.value) AS value
FROM tb_test c, tb_join b
WHERE c.id = b.id
AND c.name = 'somename'
AND c.attribute = 'someattr'
AND c.type = 'sometype'
GROUP BY c.date
ORDER BY c.date desc limit 30
durecatdurecat2016년 6월 12일
안녕하세요.
제가 MariaDB를 사용해 보지는 않았지만,
일반적인 인덱스 생성 방법을 생각해서 답변 드리려 하는데요.

복합인덱스 생성 방법에 대한 것은 이 글 참고하시면 더 좋을 것 같구요 ^^;
http://www.gurubee.net/m/lecture/2229

주신 쿼리를 봤을 때 인덱스는 2개 필요 할것 같습니다.
tb_test: name, attribute, type (복합 인덱스)
tb_join: id (Primary key index, 컬럼명이 id라서 primary key로 가정함)

tb_test의 세개 컬럼이 = 연산자로 where절에 사용되고 있기 때문 이구요,
컬럼 명만 봤을 때는 name의 분포도가 더 좋은 듯 해서 제일 앞에 두었어요.
(attribute와 type을 생각했을 때도 마찬가지로)

도움이 되었길 바랍니다.

로그인 후 답글을 남길 수 있습니다.