3P by neo 2023-08-30 | favorite | 댓글 1개
  • 데이터베이스에서 인덱스를 삭제하거나 데이터를 삭제하지 않고 저장 공간을 확보하는 기술에 대해 논의됩니다.
  • 사용되지 않는 인덱스를 식별하고 저장 공간을 확보하기 위해 삭제됩니다.
  • 테이블과 인덱스의 불필요한 공간을 정리하기 위해 다시 구축됩니다.
  • PostgreSQL 13에서 B-Tree 인덱스 중복 제거 기능이 도입되어 중복 값이 있는 인덱스의 크기를 줄일 수 있습니다.
  • downtime 없이 블로트를 줄이기 위해 pg_repack 확장 기능을 사용하여 테이블을 다시 구축할 수 있습니다.
  • PostgreSQL에서는 NULL 값도 인덱싱되어 불필요한 공간을 사용합니다.
  • NULL 값을 제외하고 인덱스 크기를 줄이기 위해 부분 인덱스를 활용합니다.
  • 이러한 작업을 수행하기 위한 쿼리와 명령이 제공됩니다.
  • 언급된 기술은 저장 공간 사용을 최적화하고 데이터베이스 성능을 향상시킬 수 있습니다.
  • Django로 구축된 대규모 애플리케이션에서 저장 공간을 최적화하고 성능을 향상시키기 위해 부분 인덱스가 사용됩니다.
  • 부분 인덱스는 null 값뿐만 아니라 자주 또는 전혀 쿼리되지 않는 값을 제외할 수 있습니다.
  • 특정 인덱스를 null 값을 제외하는 부분 인덱스로 변환하면 약 1.3GB의 저장 공간을 절약할 수 있습니다.
  • 복제에서 인덱스를 삭제하면 더 많은 저장 공간을 확보할 수 있습니다.
  • Django에서 외래 키에 대한 암묵적 인덱스 생성을 방지하고 downtime이나 성능 저하 없이 기존의 전체 인덱스를 부분 인덱스로 마이그레이션하는 팁이 제공됩니다.
  • 인덱스 정의를 최적화하여 저장 공간 효율성과 성능을 극대화하는 중요성이 강조됩니다.
Hacker News 의견
  • 색인을 작게 만드는 것은 충분한 저장 용량이 있어도 이점이 있다.
  • 자체 하드웨어를 가진 사람들에게는 더 많은 저장 공간을 할당하는 것이 유효한 옵션이다.
  • PostgreSQL 13의 B-트리 중복 제거는 외래 키 색인의 NULL 값에 도움이 될 수 있다.
  • 이 기사는 PostgreSQL의 공간 효율성을 최적화하기 위한 유용한 기술과 통찰력을 제공한다.
  • 초기 또는 초기 단계의 회사에서는 크기를 최적화하는 대신 디스크 공간을 추가하는 것이 일반적으로 더 좋다.
  • 테이블 열 순서를 재정렬하고 스크립트를 사용하면 상당한 저장 공간을 확보할 수 있다.
  • 비대칭 데이터 분포는 색인 팽창과 더 효율적인 진공 작업이 필요할 수 있다.
  • 이 기사는 Hacker News에서 긍정적인 피드백을 받았다.
  • 사용되지 않는 색인 및 최적화 기회를 발견하기 위해 pganalyze.com을 추천한다.
  • 흔하지 않은 PostgreSQL 색인 형식과 NULL 값 색인은 널리 알려져 있지 않다.
  • 데이터 양을 증가시키면 삽입 시간과 성능에 큰 영향을 미칠 수 있다.
  • 해당 원칙은 열에 공통 값의 높은 비율이 있더라도 여전히 적용될 수 있다.