2010-12-22 9 views
-1

30 개의 열과 수천 개의 행을 포함하는 하나의 테이블을 만들어야합니다. 어떻게 관리하나요?매우 큰 데이터가있는 테이블을 처리하는 방법은 무엇입니까?

디스크에 불필요한 데이터를 저장하는 테이블의 B + 트리와 같은 데이터 구조가 있습니까?

Java/JDBC를 사용하여 구현해야합니다.

아이디어가 있으십니까?

+1

당신은 당신이 처음부터 DBMS를 작성하려는 건가요? 또는 JDBC를 통해 기존의 Oracle 또는 MySQL을 사용할 수 있습니까? – Thilo

+0

시나리오에 따라 [Lucene] (http://lucene.apache.org/)와 같은 검색 엔진을 볼 수도 있습니다. – sjngm

+0

실제로 묻는 질문에 대한 답변이 "예, 색인 된 데이터베이스"인 것 같습니다. 좀 더 구체적으로 만들 수 있을까요? – Affe

답변

0

나는

Map<Object, DataType> table 

같은 구조에 메모리 솔루션을 기반으로 내가 빨리 읽고 단일 행 삽입 또는이 키를 기준으로 정렬 된 출력은 TreeMap 경우 원하는 경우 중 하나 HashMap를 선택할 것 전형적인 시나리오.

Big은 항상 그렇듯이 상대적입니다. 가상 시스템에 추가 힙 공간을 할당하여 해당 테이블의 메모리 사용량을 "땅콩"으로 지정할 수 있습니다.

DataType, 그런데, 테이블 항목에 대한 모든 값을 보유하는 일부 Java 클래스입니다.

지속성이 필요한 경우 기존 데이터베이스 엔진에서 테이블을 정의하고 필요한 데이터를 읽는 일부 SQL 쿼리 문을 개발하십시오.

1

NTFS, ReiserFS, NSS, XFS 및 JFS 파일 시스템은 모두이 유형의 트리를 메타 데이터 색인화에 사용합니다. IBM DB2, Informix, Microsoft SQL Server, Oracle 8, Sybase ASE, PostgreSQL, Firebird, MySQL 및 SQLite와 같은 관계형 데이터베이스 관리 시스템은 테이블 인덱스에 대해이 유형의 트리를 지원합니다.

엔터프라이즈 응용 프로그램에서는 수천 개의 레코드가 정상입니다.

자주 검색되는 필드에 인덱스를 적용하면 검색이 향상되지만 삽입에 영향을줍니다.

가능하면 데이터베이스 정규화를 시도하십시오. 응용 프로그램 계층에서

, 당신은 JCache 등 OSCACHE, EHCache는, 같은 캐싱 API의의를 사용할 수 있습니다

관련 문제