총 45건
개별 INSERT 문은 높은 오버헤드를 가지고 있습니다. 여러 행을 단일 문으로 배치하거나 COPY를 사용합니다.
N+1 쿼리는 루프에서 항목당 하나의 쿼리를 실행합니다. 배열이나 JOIN을 사용하여 하나의 쿼리로 배치하세요.
OFFSET 기반 페이지 분할은 생략된 모든 행을 스캔하여 더 깊은 페이지에서는 속도가 느려집니다. 커서 호출은 O(1)입니다.
별도의 SELECT-then-INSERT/UPDATE를 사용하면 레이스 조건이 생성됩니다. INSERT 사용 ... 원자력 발전을 위한 갈등에 대해.
자문 잠금 장치는 데이터베이스 행을 잠그지 않고도 애플리케이션 수준의 조정을 제공합니다.
데드락은 트랜잭션이 서로 다른 순서로 리소스를 잠글 때 발생합니다. 항상
장기 거래는 다른 쿼리를 차단하는 잠금을 유지합니다. 거래를 가능한 한 짧게 유지하세요.
여러 작업자가 대기열을 처리할 때, SKIP LOCKED는 작업자가 기다리지 않고 다양한 행을 처리할 수 있게 해줍니다.
EXPLE ANORAY는 쿼리를 실행하고 실제 타이밍을 보여주며 실제 성능 병목 현상을 드러냅니다.
pg_stat_문은 모든 쿼리에 대한 실행 통계를 추적하여 느리고 빈번한 쿼리를 식별하는 데 도움을 줍니다.
오래된 통계는 쿼리 플래너가 잘못된 결정을 내리게 합니다. 진공 청소기는 공간을 회수하고 통계를 업데이트합니다.
쿼리가 여러 열에서 필터링될 때, 복합 인덱스는 별도의 단일 열 인덱스보다 더 효율적입니다.
인덱스를 다루는 것은 쿼리에 필요한 모든 열을 포함하므로, 테이블을 완전히 건너뛰는 인덱스 전용 검색을 가능하게 합니다.
다양한 인덱스 유형은 다양한 쿼리 패턴에서 뛰어납니다. 기본 B-트리가 항상 최적인 것은 아닙니다.
쿼리가 인덱싱되지 않은 열을 필터링하거나 조인하면 전체 테이블 스캔이 발생하며, 테이블이 커질수록 쿼리 스캔 속도가 기하급수적으로 느려집니다.
부분 인덱스는 WHERE 조건과 일치하는 행만 포함하므로 쿼리가 동일한 조건에서 일관되게 필터링될 때 더 작고 빠르게 처리됩니다.
올바른 데이터 유형을 사용하면 저장 공간이 줄어들고, 쿼리 성능이 향상되며, 버그를 방지할 수 있습니다.
Postgres는 외국 키 열을 자동으로 인덱싱하지 않습니다. 인덱스가 누락되면 JOIN 및 CASCADE 작업이 느려집니다.
PostgreSQL은 따옴표가 없는 식별자를 소문자로 접습니다. 인용된 혼합 대소문자 식별자는 영원히 따옴표를 필요로 하며, 이를 인식하지 못할 수 있는 도구, ORM 및 AI 비서와 관련된 문제를 일으킵니다.
파티셔닝은 큰 테이블을 더 작은 조각으로 분할하여 쿼리 성능과 유지보수 작업을 향상시킵니다.