2014-02-11 1 views
0

비디오 데이터베이스를 구축 중입니다.
당신이 알고있는 비디오에는 많은 태그가 있습니다. 그리고 각 태그는 또한 많은 비디오와 관련이 있습니다.
SQL 다 대다 관계 솔루션 : 중간 테이블 또는 xml 쿼리?

일반적인 해결책은 모든 태그와 비디오 간의 중간 테이블 기록 관계를 만드는 것입니다.
놀랍게도, mysql이 xml을 쿼리 할 수 ​​있다는 사실을 알게되었으므로 비디오의 모든 태그를 비디오 테이블의 한 열에 저장할 수 있다고 생각합니다.

하지만이 방법으로 더 효율적인지 궁금합니다.

답변

2

XML은 구조화되지 않은 데이터 및 구조화 된 데이터를 저장하는 데 적합합니다. MySQL은 구조화 된 데이터를 저장하는 데 적합합니다. 이 데이터가 구조화되어 있지 않습니까? 소리는 마치 나에게 많은 단순한 관계에 간단합니다. XML도 성능 저하 요인이 될 수 있습니다. Performance of MySql Xml functions?

이것은 설계상의 결정이며 엄격하고 빠른 규칙이 없습니다. 두 가지 접근 방법을 모두 테스트하고 정보에 입각 한 선택을하는 것이 좋습니다. 그러나 MySQL이 XML을 파싱하는 것보다 많은 관계를 맺을 때 훨씬 더 나은 성능을 보임을 발견했습니다.

마지막으로 XML 색인을 생성 할 수 없음을 확인했습니다. 아, 그러면 기억해야 할 것이 하나 있습니다. XML 문서가 데이터베이스를 부 풀릴 수 있습니다. 예를 들어 관계형 디자인에서는 태그 Kung Fu을 한 번 저장 한 다음 해당 태그를 올바른 동영상과 연결합니다. XML 접근 방식에서는 수천 시간의 잠재적으로 <tag>Kung Fu</tag>을 저장할 것입니다.

디자인에서 모든 XML을 하나의 열에 추가 하시겠습니까? 그것은 엄청난 XML 문서가 될 것이며, 어느 시점에서 성능을 심각하게 저하시킬 것입니다. 내 산책 길에 약간의 생각이 들었고 심각한 결과 중 하나는 모든 태그를 하나의 XML 열에 채워서 업데이트 및 읽기에 대한 경합이 거대하게 될 것이라는 것입니다. 태그가있는 XML 열을 저장 한 모든 영화의 경우 더 나은 성능을 얻을 수 있습니다. 모든 XML이 포함 된 하나의 열은 공주를 보유하는 던전 보관 인처럼 잠글 것입니다.

나는 각자가 그것의 죄수와 찬성을 가지고 있다고 말했던 것처럼. 둘 다 테스트하고 새로운 기술을 배우십시오.