본문 바로가기

db4

Database partition in postgresql Postgresql를 사용하면서 대용량 데이터를 insert, select, delete할 일이 있었다. 간단한 OLAP 작업이긴 하나 row oriented rdbms를 사용해야 했고, select와 delete에 대해 최적화를 진행해야 했다. 이를 위해 사용했던 partition 기능을 정리해둔다. 참고 문서: Postgres partition Partition Partition은 하나의 logical table을 작은 physical table로 나누는 것을 의미한다. 다음과 같은 특징을 가진다. 장점 Query performance가 드라마틱하게 올라간다. 테이블에 원하는 row만 접근해도 되기 때문이다. Bulk load와 delete가 partition 추가와 삭제로 간단하게 구현될 수 있다... 2024. 1. 29.
[TIL] Postgresql에서 one-row size 구하기 Postgresql에서 하나의 row의 bytes를 다음 명령어로 구할 수 있다. SELECT sum(pg_column_size(t.*)) as filesize, count(*) as filerow FROM as t where id = ; 테이블 크기에 대해 알고 싶으면 where문을 빼면 된다. SELECT sum(pg_column_size(t.*)) as filesize, count(*) as filerow FROM as t; 2023. 12. 11.
[TIL] Redis Scan 개선 Primary Database로 in-memory db, 그 중에서도 redis를 사용하고 있다. Redis를 사용하는 이유는 disk io가 많이 발생하지 않고, 적재하는 데이터의 양이 크지 않기 때문에 in-memory state로도 충분하기 때문이다. 하지만 관계형 데이터베이스만 쓰다가 처음 in-memory database를 사용하니 rdb에서는 매우 간단하게 했던 select, join하는 작업이 쉽지 않았다. select를 잘못 구현해서 문제가 발생하고 해결한 과정에 대해서 적어보고자 한다. Context 다음 sql을 redis에서 수행하려고 한다. select * from ; 이를 위해 Scan method와 HScan method을 사용했다. Redis에는 다음과 같이 저장되어 있다. :.. 2023. 10. 21.
Clickhouse 알아보기 우리가 주로 사용하는 Row-oriented DBMS와 비교하면서 Clickhouse를 찾아보았다. https://clickhouse.com/docs/en/intro/ What Is ClickHouse? | ClickHouse Docs ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP). clickhouse.com Clickhouse는 ClickStream 과 Data Warehouse가 합쳐진 이름으로, 기존에 사용하던 Row-oriented DBMS와 쿼리 문법이 유사하지만, 세부적인 부분에서는 다를 수 있다. Row-oriented vs Co.. 2022. 5. 11.