1. 색인의 기본 개념B-Tree 인덱스PostgreSQL의 기본 인덱스 구조로, 등치(=)·범위(>, 인덱스 스캔 방향ASC(오름차순)로 생성된 인덱스도 역방향(backward) 스캔을 통해 내림차순 검색(ORDER BY … DESC)에 활용 가능커버링 인덱스자주 조회하는 컬럼들을 (A, B, C) 순서로 묶어두면, CREATE INDEX idx_cover ON table (A, B, C);WHERE A=x AND B=y + ORDER BY C 같은 쿼리는 인덱스만으로 결과를 반환 → 테이블 본문 접근(heap fetch)을 줄인다.2. 등치조건(Equal) vs. 범위조건(Range) 조건 종류예시인덱스 활용 방식성능 팁등치조건WHERE tag_group='ETC'인덱스 리프 노드 바로 탐색첫 번째 ..
InfluxDB현재 2025년시계열 DB 중 스코어 가장 높은 InfluxDB를 설치해보겠습니다https://db-engines.com/en/ranking_trend/time+series+dbms Time Series DBMS > Trend DB-Engines Ranking - Trend of Time Series DBMS Popularity The DB-Engines Ranking ranks database management systems according to their popularity. This is a partial trend diagram of the complete ranking showing only time S" data-og-host="db-engines.com" data-og-so..
Record타입 사용해보기사용법1. 레코드 선언declare res_rec rocord;begin 2. 레코드 값 삽입-- 넣어줄 값reg_time := param_time;my_data := 25.45;-- 값 삽입select reg_time as reg_time, my_data as my_datainto res_rec;예제함수레코드 함수를 먼저 만들고 다른함수에서 실행하는 형식으로 진행하겠습니다.1. 레코드 함수생성CREATE OR REPLACE FUNCTION rec_test_data(param_time timestamp with time zone) RETURNS record LANGUAGE plpgsqlAS $function$ declare reg_time timestamp; my_..
with time zone vs without time zoneCREATE OR REPLACE FUNCTION myfunc(param_time timestamp with time zone)CREATE OR REPLACE FUNCTION myfunc(param_time timestamp without time zone) with time zonewith time zone은 시간대 정보를 포함해야 하므로, 시간을 입력할 때 시간대가 포함된 형식을 사용해야합니다.예를들어, 2025-04-17 12:00:00+09 처럼 시간을 입력하면 됩니다.-- 함수 정의 예시CREATE OR REPLACE FUNCTION myfunc(param_time timestamp with time zone, param_mode in..
PostgreSQL에서 idle vs idle in transaction 상태 차이PostgreSQL의 pg_stat_activity에서 세션의 상태(state)는 다음과 같이 나타날 수 있습니다.상태의미잠금(Lock 가능성)주요 원인idle현재 실행 중인 쿼리가 없고, 단순히 연결이 유지됨❌ 없음애플리케이션이 DB 연결을 유지하고 있지만, 아무 작업도 하지 않는 경우idle in transaction트랜잭션이 시작되었지만 COMMIT 또는 ROLLBACK이 수행되지 않고 대기 중✅ 있음BEGIN; 실행 후 쿼리를 실행했지만, COMMIT; 또는 ROLLBACK;을 하지 않음1️⃣ idle 상태📌 의미현재 세션이 DB에 연결되어 있지만 아무런 작업도 수행하지 않는 상태.SELECT, UPDATE, IN..