본문 바로가기
PostgreSQL

Postgresql 사용이유?

by 코딩초 2024. 7. 27.


개발자가 되고 Si회사를 다니며 처음 사용한 DB는 Postgresql이었다.

이직한 회사에서도 티베로나 Postgresql을 사용하고 있었다.
알고보니 흔하게 사용하는 이유가 있었다.

장점)
1. 무료임
2. PostGis라는 확장툴이 있는데 이게 gis관련 공간데이터를 다룰수 있는 기능을 지원해줌

단점)
1. Delete,  update시에 메모리가 남는다..이는 곧 성능 저하로 이어짐
자세한 이유는 챗지피티에게 물어봤다

PostgreSQL에서 DELETE나 UPDATE를 수행할 때, 해당 행이 바로 물리적으로 삭제되지 않고 “쓰레기”로 남아 있게 됩니다. 이는 MVCC(Multi-Version Concurrency Control)라는 동시성 제어 메커니즘 때문입니다. MVCC는 데이터의 일관성과 동시성을 보장하기 위해 각 트랜잭션이 수행되는 동안 스냅샷을 유지하며, 이는 삭제되거나 업데이트된 행이 바로 메모리에서 사라지지 않도록 합니다.

이러한 “쓰레기” 데이터를 정리하는 작업은 VACUUM 프로세스를 통해 이루어집니다. VACUUM은 주기적으로 실행되어 불필요한 데이터를 정리하고, 디스크 공간을 회수하며, 테이블을 최적화합니다. 따라서 DELETE나 UPDATE를 수행한 후에는 VACUUM 명령을 통해 메모리를 정리해야 합니다.

기본적으로는 VACUUM 명령을 통해 정리할 수 있으며, 더 강력한 최적화를 위해서는 VACUUM FULL 명령을 사용할 수 있습니다. VACUUM FULL은 테이블을 잠그고, 물리적인 재구성을 통해 더 많은 공간을 회수합니다.

정리하자면, PostgreSQL에서는 DELETE나 UPDATE를 통해 데이터를 삭제해도 해당 메모리가 즉시 회수되지 않으며, 주기적인 VACUUM 작업을 통해 메모리가 정리됩니다.




결론 )

프로젝트마다 다르겠지만,  비용적 측면에서 부담이 없다면 대부분의 경우 오라클을 사용하는것이 적합해 보인다.

GIS데이터를 다룬다면 PostgreSQL을 사용하면 된다.