2014-06-12 7 views
1

구조 데이터베이스를 작성할 관계형 데이터베이스가 있으며 테이블 중 하나에 100 개 이상의 열이 있습니다. 나에게 그것은 약간은 보인다. 그러나 나는 모범 사례를 모른다. 이 테이블은 많이 쿼리되며 모든 열이 필요한 시간의 절반 정도는 빠르며 필요합니다. 내 질문은이 테이블을 필요할 때 함께 결합하거나 그대로 유지할 수있는 작은 테이블로 분할해야합니까?100 개 열 또는 여러 개의 테이블을 결합 할 수있는 테이블 하나를 갖는 것이 더 낫습니다.

모든 조언을 주시면 감사하겠습니다.

+0

에 따라 다릅니다. 테이블을 정규화하면 많은 이점을 얻을 수있는 좋은 (그리고 인기있는) 아이디어가 될 것입니다.하지만 실제로 종교에 대해선 안됩니다. 성능을 위해 테이블을 비정규 화하는 경우에는 단점을 인식해야합니다. 이 경우 저작자의 관점에서해야 할 일에 대한 질문에 실제로 답할 수는 없습니다. 너무 많은 요소에 따라 다르며 그 중 아무 것도 여기에 나열되어 있지 않습니다. – ChristopheD

+3

질문에 대한 [진짜] 답변이 없습니다. 귀하의 데이터 모델에 따라 달라집니다. 해당 엔티티가 실제로 * 100 * 속성을 갖습니까? 아니면 내부에 갇혀있는 다른 엔티티가 있습니까? E-R 모델링 및 데이터베이스 설계 주제는 http://dba.stackexchange.com/에 더 적합합니다. –

+0

문제의 표는 인보이스를 나타내며 100 개가 넘는 속성이 있습니다. 내 질문은 모범 사례를 파악하는 데 더 많은 노력을 기울이고 있습니다. (btw 링크에 감사드립니다) – Tbone

답변

1

나는 하나의 큰 테이블로 남겨 두는 것이 낫다고 믿습니다. 쿼리는 일반적으로 모든 열을 반환하기 때문에 삽입도 모든 열에 삽입한다고 가정합니다. 이를 여러 테이블로 분할하면 잠재적으로 삽입을 악몽으로 만들 수 있습니다. 또한 하나의 큰 테이블을 사용하면 DB가 많은 쿼리를 수행 할 때 많은 테이블 작업을 수행하지 않아도됩니다.

0

마일리지는 특정 조건에 따라 다르며 특정 DBMS에 따라 다를 수 있습니다. 두 가지 방법으로 시도하고 측정하십시오.

대부분의 경우 모든 열이 필요하다면 모든 테이블을 하나의 테이블에 유지하는 것이 여러 테이블을 결합하는 것보다 효율적일 것입니다. 테이블의 수를 줄이기 위해 데이터를 표준화하지 않은 경우가있어 쿼리가 훨씬 빨라졌습니다.

관련 문제