본문 바로가기

PostgreSQL

(PostgreSQL) Default 값이 있는 새로운 필드 추가하기 Default 값이 있는 새로운 필드 추가하기ALTER TABLE orders  ADD COLUMN price bigint NOT NULL DEFAULT 0;PostgreSQL 10 이하 버전에서는 테이블에 Default 값이 있는 필드를 추가할 땐 주의해야한다. Default값이 있는 필드를 추가할 때, 테이블을 다시 만들어내기 때문이다!그러면 시간도 오래걸리고, ACCESS EXCLUSIVE LO..
(PostgreSQL)Idle in transaction 프로세스 자동으로 죽이기 문제 상황postgresql에서 transaction이 잡혀있지만, 아무것도 하지 않으면, 세션의 상태는 idle in transaction이 된다.그런데 얘가 connection은 쥐고 있지만, 아무것도 안한다면 서버 자원을 잘 활용하지 못하게 된다. ( 참고 - (Django)PostgreSQL의 Idle In Transaction Connection )그러면 connection이 무한대로 늘어난다거나, connection이 필..
(PostgreSQL) OOM Killer PostgreSQL 서버에 Out Of Memory가 발생하는 경우, PostgreSQL 자체를 재부팅해야지만 복구할 수 있다. 메모리가 부족해지고, Swap 영역이 증가하게 되면 Linux Kernel의 OOM Killer가 프로세스를 죽이게 된다. 그러면서 부족해진 메모리를 늘리고, Swap 영역을 줄인다. 이러면, 서버에 접속할 수 없는 수준으로 서버가 고장나는 일은 막을 수 있다. 그러나 OOM Killer가 Ses..
(PostgreSQL) work_mem 메모리 설정 postgresql의 work_mem이란? 이 값은 정렬 /  해시 / 조인 등의 동작에 사용될 수 있는 메모리 사용량을 의미한다.   이 메모리는 임시 디스크에 데이터를 쓰기 전에 사용된다.  기본값은 4MB으로 설정된다. 그런데 어떤 아티클에서는 일반적으로 64MB 정도가 적합한 수치라고 한다.  만약 PostgreSQL이 temporary file을 사용하고 있다면, work_mem을 늘리면 좋다..