2010-03-02 2 views
0

4 개의 테이블에 최대 10 만 개의 행이 포함 된 10 개의 테이블이 있습니다. 모든 값은 한 번에 삽입되며 이후에는 여러 번만 데이터를 읽습니다. 나는 선택, 합류 또는 다른 독서 등을 할 때 크게 수행 할 수있는 데이터베이스를 찾고 있습니다.훌륭한 읽기 성능을 갖춘 데이터베이스

가장 권장되는 옵션은 무엇입니까?

+0

현재 메모리가 작은 테이블과 함께 HSQLDB를 사용합니다. 큰 테이블은 불행히도 기억에 맞지 않을 것입니다. OS는 Fedora입니다. – mscavnicky

+0

질의 : 대부분의 경우 최대 절전 모드를 사용하여 집계 개체를로드합니다. 집계 오브젝트에는 큰 테이블의 오브젝트 목록이 들어 있습니다. – mscavnicky

답변

2

올바른 색인을 추가하면 큰 문제가되지 않습니다. 여기에 데이터베이스 디자인이 더 중요 할 수 있습니다.

0

간단히 "SQLite"라고 대답 하겠지만 Stackoverflow에 따르면 그 자체만으로는 너무 짧습니다. 그래서 나는이 추가 텍스트를 덧붙였다.

0

나는 당신이 좋은 대답을 얻으려면 좀 더 자세하게 설명해야한다고 생각한다. 어떤 종류의 성능과 하드웨어/OS를 찾고 있습니까? 어떤 종류의 쿼리를 수행 할 예정입니까?

괜찮은 데이터베이스 서버의 경우 실제로 백만 열이 그다지 많지 않습니다. 가능한 최상의 검색 성능을 원한다면 메모리에 충분한 메모리가 있으면 인 메모리 테이블을 사용하는 것이 좋습니다.


HSQLDB와 최대 절전 모드를 사용하고 있다고 말하는 데 약간의 질문이 업데이트되었습니다. 나는 당신의 성능 문제가 HSQLDB보다는 Hibernate에 의한 것 같아요. 좀 더 적극적으로 특정의 테이블이 읽기 전용 것, 당신이 할 수있는 인덱스를 알고 있다면

http://en.wikipedia.org/wiki/HSQLDB에 따르면, 테이블 형식의 선택은 ...뿐만 아니라,

0

을 성능에 큰 영향을 미칠 수있다 . 일반적으로 인덱스는 쓰기 속도를 늦추고 읽기 속도를 향상시킵니다.

사용중인 RDBMS의 성능 특성을 배우는 것도 가치가 있습니다. 쿼리 분석기가 LIKE 비교, Regex, XML 데이터 유형, 하위 문자열 등을 구문 분석하도록하는 어떤 것도 피하고자 할 것입니다.

WHERE 절의 기준으로 사용되는 필드가 간단한 '='평가를 사용하고 있습니다. 이것이 현재 스키마에서 어색하다면, 데이터를 다르게 분할하여 그 상태에 도달 할 가치가있을 것입니다.

관련 문제