데이터베이스/postgresql
-
Rows Removed by Join Filter ??란 무엇인가?데이터베이스/postgresql 2024. 10. 21. 16:30
PostgreSQL의 EXPLAIN ANALYZE 결과에서 조인 과정 중 필터링된 레코드 수를 나타내는 항목입니다. 이는 조인 필터가 어떤 역할을 하는지를 보여주는 부분으로, 조인을 수행할 때 특정 조건을 만족하지 않아 제외된 레코드들의 수를 의미합니다.1. Join Filter란?Join Filter는 조인할 때 조인 조건 외에 추가적으로 필터링을 적용하는 조건을 의미합니다. 조인 시 두 테이블에서 조인 조건을 만족하는지 여부를 평가한 뒤, 그 조건 외의 추가 조건에 따라 데이터를 더 걸러낼 수 있습니다.조인 조건: 테이블 간의 관계를 설정하는 기본 조건입니다. 예를 들어 ON a.id = b.a_id는 두 테이블을 연결하는 조인 조건입니다.조인 필터: 조인 후에 추가로 레코드를 걸러내는 조건입니다. ..
-
mysql 에서 for update를 통해 lock을 걸경우와 postgres에서 걸경우 같을까?데이터베이스/postgresql 2024. 10. 18. 10:03
*MySQL (특히 InnoDB)**와 PostgreSQL는 행 잠금과 쓰기 락 처리 방식에서 차이가 있습니다. MySQL과 PostgreSQL은 모두 **MVCC (Multi-Version Concurrency Control)**를 사용하여 데이터의 일관성을 유지하면서 동시성을 처리하지만, 행 잠금(ROW-level locking) 방식에 차이가 있습니다.MySQL (InnoDB)에서의 행 잠금InnoDB는 인덱스를 사용한 쿼리에 대해 인덱스 기반의 잠금을 사용합니다. 즉, 특정 인덱스를 통해 WHERE 절에 의해 필터링된 모든 행에 잠금이 걸리며, 이 잠금은 다음과 같은 특성을 가집니다:인덱스 기반 락: InnoDB는 인덱스를 사용하는 쿼리에 대해 잠금을 걸기 때문에, 해당 인덱스를 사용하는 범위 내..
-
postgresql 에서 FSM 은 무엇인가?데이터베이스/postgresql 2024. 10. 14. 16:48
**FSM (Free Space Map)**은 PostgreSQL에서 테이블 및 인덱스의 사용되지 않은 공간을 추적하기 위한 데이터 구조입니다. FSM은 디스크 페이지 내에서 아직 사용 가능한 여유 공간을 기록하며, 데이터베이스 성능을 최적화하는 데 중요한 역할을 합니다.FSM의 역할빈 공간 관리: PostgreSQL의 테이블에 새로운 데이터를 삽입하거나 기존 데이터를 수정할 때, 새롭게 할당된 디스크 페이지 대신 기존의 빈 공간을 활용하는 것이 효율적입니다. FSM은 테이블 내에서 사용되지 않은 공간(빈 페이지 또는 일부 공간이 사용 중인 페이지)을 추적하여, 필요할 때 이 빈 공간을 사용할 수 있게 도와줍니다.데이터 삽입 효율성: 새로운 데이터가 삽입될 때, PostgreSQL은 FSM을 참고하여 빈..
-
postgresql 실행계획 - recheck cond - 수정중데이터베이스/postgresql 2024. 5. 16. 11:51
Contents --> recheck condPostgreSQL 실행 계획에서 "recheck condition"은 조인 또는 필터 조건을 다시 확인해야 하는 경우를 가리킵니다. 이는 PostgreSQL이 레코드를 검색하거나 조인할 때 초기에는 조건을 충족하는 것처럼 보이지만, 후속 단계에서 다시 확인해야 하는 상황을 의미합니다.예를 들어, 인덱스 스캔을 사용하여 조인 또는 필터링을 수행할 때, PostgreSQL은 인덱스를 사용하여 먼저 레코드를 필터링합니다. 그러나 인덱스만으로는 완전한 결과를 보장할 수 없는 경우가 있습니다. 따라서 PostgreSQL은 해당 레코드를 다시 확인하여 추가적인 조건을 충족하는지 확인합니다.이러한 "recheck condition" 단계는 성능에 영향을 줄 수 있으므로..
-
short query , long query 란 무엇인가? sql최적화 팁 - 수정중데이터베이스/postgresql 2024. 5. 13. 13:49
첫 번째 단계는 쿼리가 짧은 쿼리인지 긴 쿼리인지 식별하는 것입니다. 이 장에서는 짧은 쿼리를 최적화하는 데 중점을 둡니다. 짧은 쿼리를 식별하는 방법, 짧은 쿼리에 사용할 최적화 기술, 이 쿼리 유형에 인덱스가 매우 중요한 이유를 배우게 됩니다. 또한 PostgreSQL에서 사용할 수 있는 다양한 유형의 인덱스와 각 인덱스 유형을 사용할 수 있는 경우에 대해서도 설명합니다. 이 챕터를 진행하기 전에 몇 가지 추가 인덱스를 만들어 보겠습니다 SELECT d.airport_code AS departure_airport, a.airport_code AS arrival_airportFROM airport a, airport dLong query 1-1SELECT f.flight_no, f.scheduled..
-
POSTGRES 테이블 인덱스 - 정리데이터베이스/postgresql 2024. 5. 10. 12:01
Contents --> 인덱스(INDEX)란? • 중복 데이터 구조• 응용 프로그램에 표시되지 않음 • 특정 기준에 따라 데이터 선택 속도를 높이도록 설계 중복성은 데이터 손실 없이 인덱스를 삭제할 수 있고 다른 곳(물론 테이블)에 저장된 데이터에서 재구성할 수 있음을 의미합니다. 응용 프로그램 표시되지 않음은 인덱스가 있는지 여부를 감지할 수 없음을 의미합니다. 즉, 모든 쿼리는 인덱스가 있든 없든 동일한 결과를 생성합니다. 마지막으로, 인덱스는 특정 쿼리 또는 (더 나은!) 여러 쿼리의 성능을 향상시킬 수 있다는 확신으로 만들어집니다. 인덱스 오버헤드 성능 이슈 테이블 인덱스는 테이블이 추가될떄마다 인덱스 테이블도 추가된다. 그러므로 많은 인덱스를 설정할경우 insert 성능 이슈가 있을수있다...
-
postgresql - where 절 사용법데이터베이스/postgresql 2024. 1. 11. 11:48
WHERE 절 사용법 SELECT select_list FROM table_name WHERE condition ORDER BY sort_expression WHERE 절이 포함되어있을때 DB에서 데이터를 가공 시키는 순서는 아래와같다. *주의사항 SELECT 문에서 별칭(alias)를 이용한 order by는 가능했다 예) select k as T from table order by T 그렇지만 위 순서를 보면 알지만 from -> where 절을 사용하므로 where 절에서 별칭(alias)를 사용하지 못한다.
-
postgresql - order by 사용법데이터베이스/postgresql 2024. 1. 10. 17:30
ORDER BY SELECT select_list FROM table_name ORDER BY sort_expression1 [ASC | DESC], ... sort_expressionN [ASC | DESC]; postgresql 에서 Order by절은 select 질의문에서 나온 결과를 정렬 해준다. dbms에서 데이터가 조회되는 순서 절 아래와 같다 order by 절은 select 실행뒤에 실행되므로 아래와 같은 쿼리도 가능하다. SELECT first_name, LENGTH(first_name) len FROM customer ORDER BY len DESC; PostgreSQL ORDER BY clause and NULL 데이터베이스세계에서 NULL 은 누락된 데이터이거나 , 알수없는 데이터..