▲GN⁺ 2024-10-21 | parent | ★ favorite | on: 우리가 가장 싫어하는 PostgreSQL 부분 (2023)(cs.cmu.edu)Hacker News 의견 OrioleDB는 새로운 저장 엔진으로 문제를 해결하려고 했음 INSERT 작업이 주로 이루어질 경우 추가 공간이 필요하지 않음 트랜잭션 내의 명령문 수에는 제한이 있지만, COPY FROM을 사용하면 이를 피할 수 있음 DBA 관점에서 롤백/언두 공간을 별도로 관리할 필요가 없음 PostgreSQL의 설계가 모든 면에서 나쁜 것은 아님 MySQL과 Oracle은 새로운 버전과 현재 버전 간의 압축 델타를 저장함 git은 diff를 저장하지 않고 PostgreSQL과 유사하게 전체 객체를 저장함 Oracle과 MySQL의 MVCC 구현은 새로운 버전의 물리적 주소를 저장하지 않음 대신 논리적 식별자를 저장하여 DBMS가 현재 버전의 물리적 주소를 찾음 이로 인해 보조 인덱스 읽기가 느려질 수 있지만, 다른 장점으로 오버헤드를 줄임 MySQL에서 단일 행을 업데이트할 때 SELECT id WHERE something; UPDATE what WHERE id=id가 훨씬 빠름 일반적인 작업에서는 이러한 방식이 사용되지 않으며, 이는 일회성 DML을 느리게 함 2010년대에는 MongoDB가 비내구성 쓰기로 인해 "webscale"로 인식되었음 이는 마케팅의 결과였음 pg_repack에 대한 설명에 동의하지 않음 VACUUM FULL은 무겁지만, repack은 더 빠르고 가벼운 대안임 PostgreSQL이 인기를 얻은 이유는 다음과 같음 데이터 안전성, ACID, Oracle과의 유사성, MVCC, SQL 표준 준수, Postgres 팀, 커뮤니티, 데이터 타입, 높은 성능, BSD 유연성 PostgreSQL은 지속적으로 발전하고 있으며, 커뮤니티가 큰 역할을 하고 있음 PostgreSQL의 전체 새로운 행-튜플 버전 저장은 기본 저장 엔진의 속성인지에 대한 질문이 있음 기사가 잘 작성되어 읽기 쉽고 이해하기 쉬웠음 진공 관련 문제를 이해하는 데 도움이 되었으며, 다이어그램도 좋았음
Hacker News 의견
OrioleDB는 새로운 저장 엔진으로 문제를 해결하려고 했음
PostgreSQL의 설계가 모든 면에서 나쁜 것은 아님
Oracle과 MySQL의 MVCC 구현은 새로운 버전의 물리적 주소를 저장하지 않음
MySQL에서 단일 행을 업데이트할 때 SELECT id WHERE something; UPDATE what WHERE id=id가 훨씬 빠름
2010년대에는 MongoDB가 비내구성 쓰기로 인해 "webscale"로 인식되었음
pg_repack에 대한 설명에 동의하지 않음VACUUM FULL은 무겁지만, repack은 더 빠르고 가벼운 대안임PostgreSQL이 인기를 얻은 이유는 다음과 같음
PostgreSQL의 전체 새로운 행-튜플 버전 저장은 기본 저장 엔진의 속성인지에 대한 질문이 있음
기사가 잘 작성되어 읽기 쉽고 이해하기 쉬웠음