2012-07-27 2 views
0

인덱스의 단점은 테이블을 쓸 때마다 업데이트해야한다는 것입니다. 즉 로딩 시간에 영향을줍니다. 그러나, 내 테이블 중 하나에 대해 SELECTWHERE 절에 3 개의 다른 열을 자주 사용합니다. 그래서 나는 정말로 테이블에 3 개의 인덱스를 추가하고 싶습니까? 이전과 마찬가지로 단점은 각 쓰기의 각 색인을 업데이트하는 것입니다. 그러나 표는 INSERT DELAYED을 사용하는 경우에만 기록됩니다. 이것은 단점이 없다는 뜻이며 3 가지 지표를 사용해야합니까?지연된 인서트에 여러 지수가 낮습니까? -

답변

1

실제로 3 개의 모든 열이 포함 된 하나의 색인이 필요할 것입니다. MySQL은 쿼리에서 테이블 당 인덱스 하나만 사용할 수 있습니다.
인덱스가있는 것이 성능 단점이 있지만, 그렇지 않은 것보다 단점보다 훨씬 적습니다.

+0

3 열의 색인을 추가했지만 검색어가 WHERE 절에서 2 열만 사용하는 경우 색인이 계속 사용됩니까? 열이 색인에 배치되는 순서가 중요합니까? –

+1

인덱스의 처음 두 열에 만 해당됩니다. 예, 순서가 중요합니다. 주어진 인덱스에서 x 번째 열을 사용하려면 x (1,2,3 ... x) 앞에있는 모든 열을 사용해야합니다. 모든 경우를 다루기 위해 여러 개의 색인을 만들 수 있습니다. – Vatev

관련 문제