세 개의 테이블이 있습니다. 고유 색인과 더 빠른 조회를위한 두 개의 다른 열 (두 개의 다른 열)이 있습니다. 세 개의 열 테이블에 기본이 아닌 두 개의 인덱스가 있습니다.
+-------------+-------------+----------+
| category_id | related_id | position |
+-------------+-------------+----------+
때때로 쿼리가
SELECT * FROM table WHERE category_id = foo
하고 때로는
SELECT * FROM table WHERE related_id = foo
category_id
및
related_id
성능 향상을 위해 인덱스 모두를하기로 결정합니다. 이 나쁜 습관인가? 이 접근법의 단점은 무엇입니까?
이미 해당 테이블에 100.000 개의 행이 있고 또 다른 100.000을 삽입하고있는 경우 과잉이 될 것입니다. 새로운 삽입마다 색인을 새로 고쳐야합니까? 그 수술이 너무 오래 걸릴까요? 감사합니다
각 색인을 하나의 색인으로 만들었습니까? 좋아. 단점은 삽입 또는 업데이트시 색인을 유지 관리해야한다는 것입니다. 일반적으로 너무 많은 오버 헤드가 없습니다. – Randy
예, 각 하나. 따라서, 이미 그 테이블에 100.000 개의 행이 있고 또 다른 100.000을 삽입하고있는 경우, 이는 새로운 삽입물이있을 때마다 인덱스를 새로 고쳐야하는 잔인한 행동일까요? 그 수술이 너무 오래 걸릴까요? – srgb