많은 텍스트를 저장할 데이터베이스를 계획 중입니다. (블로그 게시물, 뉴스 기사 등) 데이터베이스에는 제목, 내용 (최대 50,000 자), 날짜, 링크 및 언어 필드가 있어야합니다. 하나의 링크에서 동일한 내용이 발생할 수 없습니다. 이전 콘텐츠 (예 : 30 일 이전)가 삭제됩니다.PostgreSQL : 대형 데이터베이스에서 기본 키 정의
이제 문제는 기본 키입니다. 자동 증가 (SERIAL 유형) 필드를 설정하여 기본 키로 사용할 수 있습니다. 그러나 필드가 어떤 목적도 제공하지 않고 기본 키가되기 때문에 디스크 공간 낭비와 어리석은 것처럼 보입니다. (그리고 필드는 결국 부족할 수 있습니다.) 그리고 항상 다른 성능 문제가 있습니다. 삽입 된 각 새 행의 내용에 중복이 있는지 확인해야합니다. 그래서 기본 키에 대한 다른 해결책은 내용 + 링크 값의 sha256 해시를 계산 한 다음이를 새로운 '해시'열에 넣고이를 기본 키로 사용하는 것입니다. 한 돌로 두 마리. 물론 그 문제는 해시 충돌입니다. 큰 위협입니까?
PostgreSQL에 대한 경험이 거의 없으므로 일반적으로 DBMS 사용 경험이 거의 없으므로 고속도로에서 달팽이의 성능 특성 (끔찍한 비교)이있는 데이터베이스를 만들기 전에 두 번째 의견을 생각해보십시오.
대용량 데이터베이스 사용 경험이 있으시면 여기서 도와주십시오. 내 상황에서는 64 자 문자열을 기본 키 필드로 설정하는 것이 좋습니다. (나는 인상이기 때문에 일반적으로이를 방지하기 위해)
테스트에 "다른 성능 문제 : 새로운 행을 삽입 할 때마다 중복 된 내용을 확인해야합니다"라는 내용이 포함 되었습니까? – onedaywhen