N+1 쿼리 문제를 이해하고 해결하기 (번역) (비공개)
·
프로그래밍/DB
보호되어 있는 글입니다.
트랜잭션의 격리 수준 (PostgreSQL)
·
프로그래밍/DB
이 글에선 트랜잭션의 격리 수준을 간단히 소개하고 PostgreSQL에서 사용하는 방법을 알아본다. 📌 격리수준의 종류 > READ UNCOMMITTED 트랜잭션의 변경사항을 Commit하지 않아도 다른 트랜잭션에서 읽어들일 수 있음 dirty read 현상이 발생할 수 있다. (완료되지 않은 데이터를 다른 트랜잭션에서 접근하는 것) > READ COMMITTED (기본값) 트랜잭션은 Commit한 데이터만 읽어들임 non repeatable read 현상이 발생할 수 있다. (경우에 따라서 같은 읽기 명령이라도 결과가 다를 수 있음) > REPEATABLE READ 트랜잭션이 항상 자신이 생성되기 전에 변경된 데이터만 읽어들임 Update Lock phantom read 현상이 발생할 수 있다. (삭제..
[PostgreSQL] Heap, Block, Tuple
·
프로그래밍/DB
📌 Heap/Heap File Heap 혹은 Heap File은 테이블 하나의 모든 정보를 저장하는 파일이다. 여러개의 block으로 구성되어 있다. 시스템 내부에 바이너리 파일 형태로 저장되어 있는데, 아래 쿼리문을 실행하면 SHOW data_directory; 데이터가 저장되는 디렉터리 경로를 알 수 있다. 그리고 해당 디렉터리에 들어가 보면, 여러 파일들이 있는데, 그 중 우리가 봐야 할 것은 base 폴더다. 들어가 보면.. 다음 과 같이 이상한 숫자들만 나온다. 또 아래 쿼리를 실행해서 이 숫자들이 뭔지 알아보자 SELECT oid, datname FROM pg_database; 이 폴더들은 데이터 베이스 별로 나눠둔 것이였다. 그럼 하나를 무작위로 들어가 보자. 😲 헉! 이번에도 이상한 숫자들..
2jun0
'프로그래밍/DB' 카테고리의 글 목록