postgres 5

DBA 의 컴퓨터 공부 - write throuth , write back 그리고 Postgres

기존의 MCU가 아닌 리눅스 기준으로 write throuth , write back 을 정리해보자 차이라면 아마도 디스크냐 메모리에 기입이냐 차이가 아닐지싶다.  write-through 방식은 캐시 데이터가 변경될 때 즉시 디스크에도 기록하는 방식이다. 성능은 낮지만, 데이터 일관성과 안정성을 보장하는 데 유리하다. 예를 들어, 매우 중요한 데이터를 다루는 시스템에서 write-through가 사용될 수 있다. 리눅스에서는 데이터를 캐시나 버퍼에 먼저 저장한 후, 일정 시점에 디스크로 기록하는 write-back 방식을 많이 사용한다. 이는 성능을 극대화하기 위한 것이며, 시스템 충돌이나 전원 장애 시 데이터 손실의 위험이 있을 수 있다. 그러나 데이터베이스나 파일 시스템에서 로그나 WAL을 사용해 ..

DBA의 길 2024.10.20

Postgres - vacuum .. 은 메모리를 청소하지 않아

postgres 에서 MVCC(Multi Version Concurrency Control) 을 위해서 독특한 기능이 존재하는데 바로 VACUUM이다. 그런데 필자도 그렇고 주변에 vacuum에 대해서 오해하는 경우가 더러 있는 것 같았다. vacuum이 메모리를 청소하는가? 아니다 vacuum 과 메모리 확보는 상관관계지 원인과 결과가 아니다. 24.1.2. Recovering Disk Space In PostgreSQL, an UPDATE or DELETE of a row does not immediately remove the old version of the row. This approach is necessary to gain the benefits of multiversion concurren..

DBA의 길 2024.10.15

INDEX에 대하여 .. 조금 더 깊은 이야기 (Postgres 와 datapage)

INDEX란 .. 간단하게 이야기하면 하나의 테이블의 레코드와 그 레코드가 담긴 데이터 페이지의 매핑정보를 담아놓은 구조라고 볼 수 있다. 또한 랜덤 액세스는 인덱스가 제공하는 중요한 이점 중 하나이다. PostgreSQL에서 인덱스는 테이블의 특정 컬럼 값과 해당 값이 저장된 위치 정보를 연결해, 쿼리를 효율적으로 실행할 수 있게 돕는다. 이 정보를 통해 데이터베이스는 테이블 전체를 탐색하지 않고도 필요한 데이터를 빠르게 찾아낼 수 있다. 인덱스의 역할인덱스는 특정 컬럼의 값과 그 값이 저장된 데이터 페이지 번호와 페이지 내 위치(오프셋)를 연결한다. PostgreSQL에서는 이 정보를 TID(Tuple Identifier)라고 부르며, TID는 해당 데이터가 저장된 페이지 번호와 행의 위치(오프셋) ..

DBA의 길 2024.10.15

INDEX에 대하여, JOIN을 곁들인

JOIN은 데이터베이스에서 여러 테이블을 결합해 데이터를 조회하는 기능이다.테이블 간의 관계를 정의하고, 그 관계를 기반으로 필요한 데이터를 하나의 결과로 결합하는 역할을 한다.예를 들어, 고객 정보와 주문 정보를 각각 다른 테이블에서 조회하고자 할 때, JOIN을 사용하면 두 테이블의 데이터를 결합하여 고객별 주문 내역을 조회할 수 있다. JOIN은 여러 테이블을 동시에 처리해야 하므로, 테이블의 크기가 크거나 결합 조건이 복잡할 경우 성능에 부정적인 영향을 미칠 수 있다. 따라서, JOIN을 사용할 때는 성능을 최적화하기 위한 전략이 필요하다. 여기서 중요한 도구 중 하나가 바로 인덱스다.  인덱스는 특정 데이터를 빠르게 찾기 위한 도구로, 테이블의 특정 컬럼에 대해 데이터를 정렬된 구조로 저장하여,..

DBA의 길 2024.10.13

Postgres - PG Architecture and Process

한달전 회사에서 postgres의 구조에 대해서 살펴보고 간단하게 설명해보는 시간을 가졌다. 알아도 아는 게 아닌것같은 묘한 IT 세계 정답은 기록뿐 그동안의 공부한것들을 다시한번 가벼운 마음으로 회상해보도록 하자  아래의 사진은 기존에 인터넷에서 돌아다니는 사진을 가져와봤는데   흠 마음에 들지않아 내가 임의로 그려보았다.  postmaster 는 client의 요청을 받을때마다 자신을 pork하여 postgres daemon을 생성한다. 이 daemon의 백그라운드 프로세스들(BG writer , Wal Writer , Check pointer , Archiver , Vacuum launcher , Logger ... ETC)  1. BG Writer (Back Ground Writer) - 버퍼 캐..

DBA의 길 2024.10.13