- PostgreSQL을 수평 확장하기 위한 샤딩 개념 이해
- PgDog를 통해 SQL 쿼리를 자동으로 샤드에 라우팅하는 원리 체험
- 트랜잭션 풀링 및 연결 재사용 확인
git clone https://github.com/pgdogdev/pgdog
cd pgdogdocker-compose up --buildpsql -h localhost -p 6432 -U postgres-- users 테이블 생성 (PgDog가 각 샤드에 분산 생성)
CREATE TABLE users (
id INT PRIMARY KEY,
email TEXT
);
-- 데이터 삽입
INSERT INTO users (id, email) VALUES (1, 'one@acme.com');
INSERT INTO users (id, email) VALUES (2, 'two@acme.com');
INSERT INTO users (id, email) VALUES (3, 'three@acme.com');
docker exec -it pgdog-shard_0-1 psql -U postgres -c "SELECT * FROM users;"
docker exec -it pgdog-shard_1-1 psql -U postgres -c "SELECT * FROM users;"
docker exec -it pgdog-shard_2-1 psql -U postgres -c "SELECT * FROM users;"-- PgDog가 트랜잭션 범위를 추적하여 커넥션을 안정적으로 관리함
BEGIN;
INSERT INTO users (id, name) VALUES (100, 'Zack');
COMMIT;docker logs pgdoghttps://brook-entrance-893.notion.site/PgDog-PostgreSQL-1f619c566cd380f08543dc6d3b997efb?pvs=4