PostgreSQL 테이블에 비해 얼마나 큰가요?
저는 우리 회사의 RoR 프로젝트를위한 디자인 작업을하고 있으며 우리 개발 팀은 이미 디자인, 특히 데이터베이스에 대해 약간의 논쟁을 벌였습니다.
Message
지속되어야하는 라는 모델 이 있습니다. 이것은 id 이외의 db 열이 3 개 밖에없는 매우 작은 모델이지만, 프로덕션 단계에서는 이러한 모델이 많이있을 것입니다. 우리는 하루에 최대 1,000,000 건의 삽입을보고 있습니다. 모델은 색인화 할 수있는 두 개의 외래 키로 만 검색됩니다. 또한 모델을 삭제할 필요가 없지만 약 3 개월이 지나면 보관할 필요도 없습니다.
그래서 우리가 궁금해하는 것은 Postgres에서이 테이블을 구현하면 심각한 성능 문제가 발생하는지 여부입니다. 누구든지 이것이 문제가 될지 여부를 알려주기 위해 매우 큰 SQL 데이터베이스에 대한 경험이 있습니까? 그렇다면 어떤 대안을 선택해야합니까?
테이블 당 행은 그 자체로 문제가되지 않습니다.
따라서 대략 90 일 동안 하루에 1 백만 개의 행을 말하면 9 천만 행입니다. 나는 Postgres가 당신이하는 일에 대한 모든 세부 사항을 알지 못한 채 그것을 처리 할 수없는 이유를 보지 못합니다.
데이터 배포에 따라 인덱스, 필터링 된 인덱스 및 어떤 종류의 테이블 파티셔닝을 혼합하여 사용할 수 있습니다. 어떤 성능 문제가 있는지 확인한 후 속도를 높일 수 있습니다. 귀하의 문제는 내가 아는 다른 RDMS에서도 동일합니다. 데이터를 정리하는 프로세스에서 3 개월 분량의 데이터 디자인 만 필요하다면 더 이상 필요하지 않습니다. 이렇게하면 테이블에 일관된 양의 데이터를 유지할 수 있습니다. 운 좋게도 얼마나 많은 데이터가 존재할지 알고 볼륨에 대해 테스트하고 얻는 것을 확인하십시오. 9 천만 개의 행이있는 하나의 테이블을 테스트하는 것은 다음과 같이 쉽습니다.
select x,1 as c2,2 as c3
from generate_series(1,90000000) x;
https://wiki.postgresql.org/wiki/FAQ
Limit Value
Maximum Database Size Unlimited
Maximum Table Size 32 TB
Maximum Row Size 1.6 TB
Maximum Field Size 1 GB
Maximum Rows per Table Unlimited
Maximum Columns per Table 250 - 1600 depending on column types
Maximum Indexes per Table Unlimited
행이 1 억 이상인 테이블에서 쿼리 속도를 크게 높이는 또 다른 방법은 쿼리에서 가장 자주 사용되는 인덱스의 테이블을 업무 외 시간에 클러스터링하는 것입니다. 2 억 1,800 만 개 이상의 행이있는 테이블이 있으며 30 배 개선 된 것으로 나타났습니다.
또한 매우 큰 테이블의 경우 외래 키에 대한 인덱스를 만드는 것이 좋습니다.
참고 URL : https://stackoverflow.com/questions/21866113/how-big-is-too-big-for-a-postgresql-table
'programing' 카테고리의 다른 글
숨겨진 파일을 grep하려면 어떻게해야합니까? (0) | 2020.09.12 |
---|---|
bash 명령에 여러 환경 변수를 설정하는 방법 (0) | 2020.09.12 |
바벨을 사용할 때 js가 필요합니까? (0) | 2020.09.12 |
uint32, int32, uint64, int64와 같은 유형이 stdlib 헤더에 정의되어 있습니까? (0) | 2020.09.12 |
하위 폴더에서 모듈 가져 오기 (0) | 2020.09.12 |