2012-06-01 3 views
0

이상하게 보일지 모르지만 MySQL과 테이블 대신 XML을 사용하면 성능상의 이점이 있습니까?사용자 데이터베이스 용 XML 또는 MySQL?

이 내용을 문맥에 넣으려면 사용자 프로필이있는 웹 사이트를 만들어야합니다. MySQL보다 XML을 더 많이 알고 대부분의 ppl이 MySQL을 표준으로 사용한다는 것을 알고 있지만 두 사람이이 두 방법을 비교하는 방법에 대해 누군가가 페니를 던질 수 있는지 궁금해했습니다.이 제안이 큰 O 표기법이 무엇인지 이해하는 사람에게는 터무니없는 내용인지 ...

+0

용의치가 들리지만 XML 데이터베이스를 어떻게 쿼리합니까? – Jeshurun

+0

정확히 내가 생각하고있는 것 - 직렬 검색이 될 태그 이름을 XML 파일로 검색한다고 가정합니다 ... – user1360809

답변

2

큰 XML 파일 일수록 스크립트를 실행하는 동안 전체 XML 파일을 RAM에로드해야하기 때문에 더 많은 메모리 사용량이 필요합니다. 평균 MySQL 데이터베이스는 약 4MB 크기입니다. 그것을 4MB의 XML 파일로 가져 와서 4MB RAM에로드하고, 디스크에서 모든 페이지 뷰의 RAM으로로드하고, 주어진 순간에 약 25 명의 방문자가 이미 잃어버린 100MB의 데이터를 가져옵니다. 빠른 1 기가 바이트 램에 이르기까지. 더 이상 없다면 매번 페이지로드에 약 1 초를 추가합니다. 변경된 vars를 읽고 쓰는 데 필요한 연속적인 디스크로드는 말할 것도 없습니다. 두 x 째 vitor가 동일한 xml 파일을 갱신하려고 할 때 스레드 된 fork가 _ 생합니다.

SQL 서버에는없는 이러한 문제가 있습니다.

+0

감사합니다. MySQL 파일이 매번 읽히고로드되고 어떻게 RAM 사용에 영향을 줍니까? – user1360809

+0

음, 훨씬 더 효율적입니다. MySQL은 또한 많은로드 밸런싱과 영향을 낮게 유지합니다. 그들이 설정하는 방법에 대한 다이빙을해야하지만 300Mb의 SQL 데이터베이스는 많은 양의 RAM을 차지하지 않지만 번거로운 쿼리는 복잡한 쿼리에 빠르게 응답합니다. 오류가 발생하기 쉬운 XML 파일보다 빠릅니다. 읽기 쓰기를 작성하고, 가져오고, 비교하고, 처음부터 프레임 워크에 가입하여 MySQL이 제공하는 데이터를 가져와야했습니다. – Tschallacka

+0

멋진 덕택으로 - codd의 정규화를 MySQL 테이블에 적용 할 수 있습니까? 필드 값을 다른 테이블에 연결할 수 있는지 확인해 보겠습니다. – user1360809

0

MySQL에는 색인이 있으며, 저장하려는 이진 값에 최적화되어 있습니다. xml 파일을 가지고 있으면 일반 파일이고 모든 최적화 (캐싱, 색인 생성, 생각할 수있는 모든 것)는 구현할 때까지 달려 있습니다.

XML은 전송에 적합한 형식이며 모든 사람이 말합니다 ..하지만 저장 용으로 사용하고 싶지는 않습니다.

그리고 이미 XML을 알고 있지만 아직 MySQL이 아니라면 나는 당신이 게임보다 앞서 있다고 말할 것입니다. 아마도 SQL 쿼리를 작성하고 xml 데이터를 사용하는 것보다 결과를 더 쉽게 가져올 수 있습니다. 사용할 수있는 여러 가지 XML DB 솔루션이 있습니다 - -

0

나는 보듯이 간단한 구글 검색에 나타납니다

http://exist-db.org/exist/index.xml;jsessionid=1dowedwdr9hsanbcvdcom8aka

http://basex.org/

http://www.oracle.com/technetwork/database/features/xmldb/index.html

http://www.sedna.org/

그래서 모든 여기서 중요한 것은 개발 속도입니다. XML에 익숙하다면 그 중 하나를 사용하면 개발 시간을 단축시킬 수 있습니다. 그러나 프로그래밍 언어에 따라 가장 많은 개발 노력을 기울이고 웹 사이트에 데이터베이스를 쉽게 사용할 수 있도록 관계형 DB ORM 제품이 많이 있습니다. 따라서 웹 사이트에 대한 특정 요구가없는 경우 위의 옵션 중 하나를 선택하십시오.

0

이것은 데이터베이스의 구조에 따라 다릅니다. 이 질문은 귀하의 데이터에 대해 아무 것도 모른 채 명확한 대답을 드릴 수는 없습니다. 관계형 데이터베이스와 XML의 비교는 어떤 데이터를 선택하고 어떤 유형의 작업을 계획 하느냐에 달려 있습니다.

예를 들어 저장소, 색인 및 쿼리가 백만 줄 이상이고 각 행에 많은 동일한 필드가 있어야합니다. 이는 간단하고 고정 된 구조이며 모든 레코드에서 동일합니다. 관계형 데이터베이스에 가장 적합하며 단일 테이블에 저장할 수 있습니다. 관계형 데이터베이스는 고정 된 레코드를 매우 효율적으로 처리합니다.

0

음, 여기에는 두 가지 주요 질문이 있습니다.

첫 번째로 데이터베이스를 사용하려는 경우 XML 데이터베이스와 관계형 데이터베이스 중 하나를 선택할 수 있습니다. 선택은 주로 데이터의 성격 (특히 복잡성뿐만 아니라 사용되는 방식)에 달려 있습니다.

그러면 데이터베이스를 사용하고 간단한 파일 (예 : XML 파일)을 사용할 수 있습니다. 이 선택은 주로 데이터의 양과 트랜잭션 처리량에 달려 있습니다.

데이터의 양이나 처리량 요구 사항에 대해 아직 알려주지 않았으므로 두 가지 질문에 특별히 조언하기가 어렵습니다.

관련 문제