[PostgreSQL] JSON 포맷 데이터 집계
·
개발 (Development)/PostgreSQL
PostgreSQL에서 JSON 형식의 데이터를 분석하려면 jsonb 데이터를 다룰 수 있는 함수와 연산자를 사용하면 됩니다. status 컬럼에 저장된 JSON 데이터에서 각 키별로 값의 종류와 그 개수를 계산하려면 jsonb_each_text 함수와 GROUP BY를 조합하여 쿼리를 작성할 수 있습니다.예제 테이블 구조CREATE TABLE example_table ( id SERIAL PRIMARY KEY, status JSONB);-- 데이터 삽입INSERT INTO example_table (status) VALUES('{"key1": "good", "key2": "critical"}'),('{"key1": "good", "key2": "warning"}'),('{"key1": "ba..
[PostgreSQL/TimescaleDB] Reordering chunk
·
개발 (Development)/PostgreSQL
TimescaleDB에서 chunk 재정렬(reordering)은 데이터의 성능 최적화를 위해 중요합니다. 특히, 쿼리 성능을 향상시키기 위해 chunks의 데이터 정렬을 다시 수행할 수 있습니다. TimescaleDB는 이를 위해 reorder_chunk 함수를 제공합니다.1. reorder_chunk 함수 사용reorder_chunk는 특정 chunk의 데이터를 지정된 인덱스 순서대로 재정렬합니다.사용법:SELECT reorder_chunk( chunk => '_timescaledb_internal._chunk_id_', index => 'index_name');chunk: 재정렬할 chunk의 이름 또는 ID를 지정합니다.index: 데이터를 재정렬할 기준이 되는 인덱스입니다.Chunk..
[PostgreSQL] 특정 값 비율 구하기
·
개발 (Development)/PostgreSQL
데이터 구조 예시컬럼:event_time (시간 데이터)asset_id (장치 ID)context_id (문맥 ID, 필요시 추가 사용)state (R 포함 상태 값)condition (상태 조건, 필요시 추가 사용)쿼리 작성WITH Total_Asset_Count AS ( SELECT asset_id, COUNT(*) AS total_count FROM your_table WHERE event_time BETWEEN 'YYYY-MM-DD HH:MI:SS' AND 'YYYY-MM-DD HH:MI:SS' GROUP BY asset_id),State_R_Count AS ( SELECT asset_id, COUNT(*) AS r_..
[PostgreSQL] duplicate key value violates unique constraint 에러가 데이터베이스에 미치는 영향
·
개발 (Development)/PostgreSQL
PostgreSQL에서 duplicate key value violates unique constraint 에러와 DB 부하PostgreSQL에서 duplicate key value violates unique constraint 에러가 발생할 때, 에러 자체가 직접적으로 데이터베이스에 부하를 유발하지는 않지만, 자주 발생하거나 잘못된 쿼리가 반복적으로 실행되면 간접적으로 DB 성능에 영향을 줄 수 있습니다.왜 부하가 생길 수 있는지?1. 트랜잭션 롤백 비용duplicate key value violates unique constraint 에러는 트랜잭션 내에서 발생하며, 에러가 발생하면 해당 트랜잭션을 롤백해야 합니다. 롤백은 CPU와 디스크 I/O를 사용하므로, 에러가 반복적으로 발생하면 부하가 증가..
[PostgreSQL] PostgreSQL 훑어보기
·
개발 (Development)/PostgreSQL
PostgreSQL에서 자주 사용하는 기술들PostgreSQL은 강력하고 유연한 오픈소스 관계형 데이터베이스 시스템(RDBMS)입니다. 여러 가지 강력한 기능들을 제공하며, 많은 개발자들이 이 시스템을 이용해 데이터베이스를 관리하고 있습니다. 이 글에서는 PostgreSQL에서 자주 사용되는 기술들에 대해 살펴보겠습니다.1. SQL 쿼리 최적화SQL 쿼리 최적화는 데이터베이스 성능을 높이는 중요한 과정입니다. 쿼리를 최적화함으로써 데이터를 빠르게 조회하고, 성능을 개선할 수 있습니다.EXPLAIN: EXPLAIN 명령어를 사용하여 쿼리 실행 계획을 확인할 수 있습니다. 이를 통해 쿼리의 성능을 분석하고, 인덱스가 제대로 사용되고 있는지, 조인의 효율성을 점검할 수 있습니다.EXPLAIN SELECT * ..