2011-02-14 7 views
3

mysql을 사용하여 데이터 집합을 저장하려고합니다. 약 10^8 (억) 레코드가 있습니다. ID(int), x(float), y(float), z(float), property(float)입니다.10^10 레코드에 적합한 데이터베이스 엔진은 무엇입니까?

InnoDB 나 MyISAM 같은 종류의 데이터 세트에 적합한 데이터베이스 엔진은 무엇입니까? 아니면 ndb (확장 성이나 성능에 대해 전혀 모른다)? 나는 다음과 같은 질문을 정적 데이터 집합을 쿼리 할 계획입니다

:

선택 getRectagularRegion 또는 getPointsInSphere;

답변

3

3 차원 공간에 점을 저장하고 한 지역 내의 모든 점을 찾으려고한다고 가정합니다.

데이터베이스에 밑줄이 쳐진 데이터베이스 코드가 많은 레코드의 경우 어떻게하면 데이터베이스에 아주 좋은 3D 공간 인덱싱 시스템을 구축하는 것이 훨씬 덜 중요합니다. 공간 인덱싱이 없으면 소원으로 쿼리를 수행 할 수 없습니다. 하지만 당신을 위해 적은 작업이 될 것 "자기 오프"데이터베이스를 사용 -

는 또한 이 포인트가 클러스터 된 방법에 따라 당신에게 좋은 색인을 줄 수있는 간단한 3 감옥 트리로 자신의 데이터 스토리지를 작성하는 것이 좋습니다.

많은 행에 대한 지원에 대해 묻는 대신 데이터베이스의 공간 인덱싱에 대한 지원을 조사해야한다고 생각합니다. 요즘 대부분의 데이터베이스에 많은 행을 저장하고 있습니다 ...

+0

답변을 주셔서 감사합니다. 그렇습니다. 데이터는 PeanoHilbert 커브 또는 유사 색인을 생성 할 수 있습니다. 또한 "클러스터 (x, y, z, 반지름, Partileslist) "개별 데이터베이스에 저장되어있는 개별 클러스터 입자를 추출하는 효율적인 jons를 만들고 싶습니다. – Arman

0

귀하의 테이블은 매우 단순한 것으로 보이며 거래 및 외래 키가 필요하지 않습니다. 그래서 MyISAM이 InnoDB보다 더 적합하다고 생각합니다. 하지만 MEMORY가 가장 빠른 선택일지도 모릅니다.

+0

64 비트 시스템이 아니면 그 상자가 가진 모든 것을 빨아 들여 3GB 메모리 테이블이됩니다. –

+0

메모리가 10^10 행입니까? – Arman

+0

질문은 ... 어쨌든 당신이 원하는 것은 무엇입니까? – Raffael

관련 문제