# 2021년에 발견된 예상치 못한 20GB의 사용되지 않은 인덱스 공간의 해방

> Clean Markdown view of GeekNews topic #10613. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=10613](https://news.hada.io/topic?id=10613)
- GeekNews Markdown: [https://news.hada.io/topic/10613.md](https://news.hada.io/topic/10613.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2023-08-30T09:48:09+09:00
- Updated: 2023-08-30T09:48:09+09:00
- Original source: [hakibenita.com](https://hakibenita.com/postgresql-unused-index-size)
- Points: 3
- Comments: 1

## Topic Body

- 데이터베이스에서 인덱스를 삭제하거나 데이터를 삭제하지 않고 저장 공간을 확보하는 기술에 대해 논의됩니다.
- 사용되지 않는 인덱스를 식별하고 저장 공간을 확보하기 위해 삭제됩니다.
- 테이블과 인덱스의 불필요한 공간을 정리하기 위해 다시 구축됩니다.
- PostgreSQL 13에서 B-Tree 인덱스 중복 제거 기능이 도입되어 중복 값이 있는 인덱스의 크기를 줄일 수 있습니다.
- downtime 없이 블로트를 줄이기 위해 pg_repack 확장 기능을 사용하여 테이블을 다시 구축할 수 있습니다.
- PostgreSQL에서는 NULL 값도 인덱싱되어 불필요한 공간을 사용합니다.
- NULL 값을 제외하고 인덱스 크기를 줄이기 위해 부분 인덱스를 활용합니다.
- 이러한 작업을 수행하기 위한 쿼리와 명령이 제공됩니다.
- 언급된 기술은 저장 공간 사용을 최적화하고 데이터베이스 성능을 향상시킬 수 있습니다.
- Django로 구축된 대규모 애플리케이션에서 저장 공간을 최적화하고 성능을 향상시키기 위해 부분 인덱스가 사용됩니다.
- 부분 인덱스는 null 값뿐만 아니라 자주 또는 전혀 쿼리되지 않는 값을 제외할 수 있습니다.
- 특정 인덱스를 null 값을 제외하는 부분 인덱스로 변환하면 약 1.3GB의 저장 공간을 절약할 수 있습니다.
- 복제에서 인덱스를 삭제하면 더 많은 저장 공간을 확보할 수 있습니다.
- Django에서 외래 키에 대한 암묵적 인덱스 생성을 방지하고 downtime이나 성능 저하 없이 기존의 전체 인덱스를 부분 인덱스로 마이그레이션하는 팁이 제공됩니다.
- 인덱스 정의를 최적화하여 저장 공간 효율성과 성능을 극대화하는 중요성이 강조됩니다.

## Comments



### Comment 18718

- Author: neo
- Created: 2023-08-30T09:48:09+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=37294793) 
- 색인을 작게 만드는 것은 충분한 저장 용량이 있어도 이점이 있다.
- 자체 하드웨어를 가진 사람들에게는 더 많은 저장 공간을 할당하는 것이 유효한 옵션이다.
- PostgreSQL 13의 B-트리 중복 제거는 외래 키 색인의 NULL 값에 도움이 될 수 있다.
- 이 기사는 PostgreSQL의 공간 효율성을 최적화하기 위한 유용한 기술과 통찰력을 제공한다.
- 초기 또는 초기 단계의 회사에서는 크기를 최적화하는 대신 디스크 공간을 추가하는 것이 일반적으로 더 좋다.
- 테이블 열 순서를 재정렬하고 스크립트를 사용하면 상당한 저장 공간을 확보할 수 있다.
- 비대칭 데이터 분포는 색인 팽창과 더 효율적인 진공 작업이 필요할 수 있다.
- 이 기사는 Hacker News에서 긍정적인 피드백을 받았다.
- 사용되지 않는 색인 및 최적화 기회를 발견하기 위해 pganalyze.com을 추천한다.
- 흔하지 않은 PostgreSQL 색인 형식과 NULL 값 색인은 널리 알려져 있지 않다.
- 데이터 양을 증가시키면 삽입 시간과 성능에 큰 영향을 미칠 수 있다.
- 해당 원칙은 열에 공통 값의 높은 비율이 있더라도 여전히 적용될 수 있다.
