2009-08-24 4 views
4

나는 datamining을하고 나의 작업은 MySQL에 1GB 데이터베이스 덤프 파일을 로딩하고 언 로딩하는 것을 포함한다. 거대한 데이터베이스에서 MySQL보다 잘 작동하는 다른 무료 데이터베이스 엔진이 있는지 궁금합니다. 성능면에서 PostgreSQL이 더 좋습니까? 속도가 유일한 요소는 그래서 나를 데이터베이스거대한 데이터 세트를위한 최고의 데이터베이스 엔진

+2

1) 데이터 마이닝 도구의 어떤 종류를 사용합니까 :

여기에 주제에 대한 몇 가지 기사는 무엇입니까? 도구에 JDBC 액세스가 필요합니까? 2) 왜로드/언로드해야합니까? 3) 성능 향상에는 하드웨어 개선, 현재 구성 설정 및 업그레이드를위한 예산 확보가 포함됩니다. –

+0

현재 어떤 DB 엔진을 사용하고 있습니까? InnoDB, MyISAM 등 ...? – Luke

+0

MySQL에서 InnoDB를 사용합니다. – Mark

답변

1

데이터 마이닝을하는 경우 문서 지향 데이터베이스를 사용할 수 있습니다. SQL을 사용하지 않는 경우에는 관계형 데이터베이스보다 빠릅니다.

MongoDBCouchDB 모두 좋은 옵션입니다. 나는 Java를 모르므로 MongoDB를 선호하며, CouchDB를 쉽게 시작하고 실행할 수 있다는 것을 알았습니다.

4

다른 데이터베이스 엔진을 대체하면 성능에 큰 증가를 제공 할 것 같지는 않다을 선택하는

난 단지 기본적인 SQL 명령을 사용합니다. 스키마를 느리게 만들면 스키마 디자인 및 데이터 액세스 패턴과 관련 될 가능성이 커집니다. 그 정보를 좀 더 제공 할 수 있을까요? 예를 들어, 데이터가 시계열로 저장되어 있습니까? 기록은 순차적으로 쓰여지거나 임의로 삽입/갱신/삭제됩니까?

2

HDF은 예를 들어 NASA의 지구 관측 시스템의 저장 장치 선택입니다. 전통적인 의미의 데이터베이스는 아니지만 고유 한 특성을 지니고 있지만 순수한 성능 측면에서는 이길 수 없습니다.

1

현재 프로젝트에서 PostgreSQL을 사용하고 있으며 자주 데이터베이스를 덤프/복원해야합니다. 400Mb 압축 덤프를 복원하는 데 20 분이 채 걸리지 않습니다. 하드웨어 구성을 준수하기 위해 일부 서버 구성 매개 변수를 조정해야하지만 시도해 볼 수는 있습니다. 이러한 매개 변수는 이에 한정하는 것은 아니지만 :

  • shared_buffers를
  • work_mem
  • temp_buffers
  • maintenance_work_mem로
  • commit_delay만큼 당신이 삽입하기 전에 인덱스를 드롭으로
  • effective_cache_size
+0

temp_buffers 또는 commit_delay는 대부분의 사람들에게 유효하지 않습니다. commit_delay가 포함 된 전체 기능은 실제로 작동하지 않으며 임시 데이터를 많이 사용하지 않는 한 temp_buffers의 기본 크기가 충분합니다. PostgreSQL을위한 서버 매개 변수 튜닝에 대한 가장 좋은 안내서는 http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server –

3

거대한 데이터, 많은 차이가 없어야 함 그 두 사람 사이.

2

데이터 마이닝 도구에서 지원하는 경우 플랫 파일 원본에서 작업하는 것이 좋습니다. 이렇게하면 대부분의 가져 오기/내보내기 작업이 저장됩니다. 그래도, 몇 가지주의가 않습니다

  • 당신은 (이미 하나에 익숙하지 않은 가정) 데이터 munging을 할 펄이나 파이썬과 같은 스크립트 언어에 능숙받을 필요가 있습니다.

  • 메모리가 더 필요하면 컴퓨터의 메모리를 확장하거나 64 비트 플랫폼으로 이동해야 할 수 있습니다.

  • 데이터 마이닝 도구가 이러한 방식으로 플랫 데이터 파일에서 작업하는 것을 지원하지 않을 수 있습니다.

최신 디스크 (심지어 SATA 디스크)는 순차 읽기에서 디스크에서 100MB/초 정도의 속도로 당길 것입니다. 이것은 무언가가 1GB 파일을 상당히 빨리 흡입 할 수 있음을 의미합니다.

또는 컴퓨터에서 SSD를 가져 와서 DBMS의 성능이 향상되는지 확인할 수 있습니다.

+1

에 있습니다. 또는 메모리를 8GB로 업그레이드하고, 충분히 큰 tmpfs RAM 디스크를 만들고 모든 무작위 랜덤 액세스 친화적 인 매체에서 작업과 관련된 액세스? 아마도 2GB RAM 스틱이 20 유로에 판매된다는 것을 알 수있는 가장 저렴한 방법 일 것입니다. – mikaelhg

1

귀하의 질문이 너무 모호하여 답이 유용하지 않습니다. "공연"은 다른 사람들에게 다양한 것을 의미합니다.MySQL과 PostgreSQL이 중요 할 수도있는 몇 가지 영역을 비교하는 방법에 대해 언급 할 수는 있지만, 정보가 없으면 실제로 중요한 문제를 말하기는 어렵습니다. 이 주제에 대한 배경 정보를 더 많이 작성했습니다 Why PostgreSQL Instead of MySQL: Comparing Reliability and Speed. 확실히 빠른 것은 당신이하는 일에 달려 있습니다.

데이터를 데이터베이스로로드하는 것이 너무 느린 문제입니까? 이것이 PostgreSQL이 특히 잘 수행하지 못하는 영역 중 하나입니다. Postgres의 COPY 명령은 특히 가장 빠른 대량로드 메커니즘이 아닙니다.

쿼리가 너무 느리게 실행되는 문제가 있습니까? 그렇습니다, 얼마나 복잡합니까? 복잡한 쿼리에서 PostgreSQL 최적화 프로그램은 특히 테이블 조인이 많은 경우 특히 SQL에서보다 나은 작업을 수행 할 수 있습니다. 작고 간단한 쿼리는 시작하기 전에 쿼리를 실행하는 방법에 대해 많은 생각을하지 않기 때문에 MySQL에서 더 빠르게 실행되는 경향이 있습니다. 똑똑한 실행은 약간의 오버 헤드를 요합니다.

얼마나 많은 클라이언트가 관련되어 있습니까? MySQL은 적은 수의 클라이언트로 훌륭하게 작업 할 수 있습니다. 클라이언트 수를 늘리면 PostgreSQL의 잠금 메커니즘이 더 잘 수행 될 수 있습니다.

트랜잭션 무결성이 중요합니까? 그렇지 않은 경우 MySQL에서 이러한 기능을 더 쉽게 해제 할 수 있습니다. PostgreSQL에 비해 속도면에서 큰 이점이 있습니다.

관련 문제