2014-10-20 2 views
1

다중 값 필드와 새로운 관계 테이블의 장점과 단점은 무엇입니까? MySQL : 다중 값 필드 대 새로운 테이블

는에 서버 측 언어 ','이 소유자의 이름과 소유자가 잭, 나는 아마로 분할 할 가지고 있는지 확인하려면

Owner Table 
id  name dogs 
1  Jack 3,4,7 

Dog Table 
id name 
1  Poodle 
2  Labrador 
3  .... 

을 가지고 개 유형으로 테이블을 말할 수 있습니다 개 필드에서 각 ID를 검색합니다. 나는 새로운 관계 테이블을 사용하면 어떻게

:

Owner Dog Table 
owner_id  dog_id 
1    3 
1    4 
1    7 

내가 다중 값 필드를 방지해야 읽을 수 있지만 내가 성능을 테스트 할 때, 다중 값 필드가 빠르다 책. 외래 키 제약의 장점과 mysql (서버 측 스크립트가 디코드되지 않은)의 조작 용이성 이외에도 관계 테이블을 사용해야하는 이유는 무엇입니까? 대용량 데이터에서도 성능 차이가 크지 않습니까?

+1

다중 값 필드의 장점 : 0. 몇 가지 레코드 이상을 사용하는 경우 다른 테이블에서 성능이 더 빠릅니다. 대용량 데이터의 경우 다중 값 열이 매우 느리므로 인덱스를 사용할 수 없습니다. –

+0

대용량 데이터 다중 값 열은 어떻게 느려 집니까? 다중 값 필드를 가져 와서 구분 기호로 문자열을 분할해야합니다. 각 ID는 다른 테이블에서 가져와야합니다. – babon

+1

내가 말했듯이 : 색인을 사용할 수 없습니다. 값을 나눌 필요가 있고 인덱스는 쓸모가 없습니다. 그리고 큰 데이터에 대한 색인이 필요합니다. –

답변

0

다중 값 필드는 관계형 칩을 만드는 게으른 방법입니다. 그러나 당신이 그들을 위해 만들고자하는 쿼리 때문에 3 개의 테이블을 사용하는 것이 더 좋습니다. 다중 값 필드보다 3 ​​개의 테이블에 대한 쿼리를 만드는 것이 훨씬 쉽습니다.

this 사이트에 완전히 설명되어 있습니다.