2016-12-23 13 views
4

로그 : tuple (0,79) :postgres 로그 파일의 "tuple (0,79)"은 교착 상태가 발생했을 때의 의미는 무엇입니까? 포스트 그레스에서

2016-12-23 15:28:14 +07 [17281-351 trns: 4280939, vtrns: 3/20] [email protected] HINT: See server log for query details. 
2016-12-23 15:28:14 +07 [17281-352 trns: 4280939, vtrns: 3/20] [email protected] CONTEXT: while locking tuple (0,79) in relation "account" 
2016-12-23 15:28:14 +07 [17281-353 trns: 4280939, vtrns: 3/20] [email protected] STATEMENT: SELECT id FROM account where id=$1 for update; 

내가 교착 상태를 도발 때 텍스트를 볼 수 있습니다.

아시다시피, 튜플은 테이블의 여러 행입니다. 그러나 나는 무엇을 의미하는지 이해하지 못한다. 테이블 계정에 2 행만 있습니다. 단지 재생 및 자체 학습 응용 프로그램입니다.

그럼 (0,79)은 무엇을 의미합니까?

+1

수단 https://www.postgresql.org/docs/current/static/datatype-oid.html

읽기 하나의 ** 행은 여러 개의 열로 구성됩니다. 두 개의 행이있는 테이블에는 두 개의 튜플이 있습니다. –

답변

4

시스템 ctid의 데이터 유형입니다. 튜플 ID는 해당 테이블 내의 행 (블록 번호, 블록 내의 튜플 인덱스) 물리적 인 위치를 식별하는 쌍입니다.

그것은 블록 번호 0도 또한 체크 아웃 $1 오른쪽으로 SELECT id,ctid FROM account where id=$1 실행할 http://rachbelaid.com/introduction-to-postgres-physical-storage/

읽기 79

로우 인덱스 ... 튜플이다

+0

그래, 포스트 그레스 소스에서 이것을 발견 : https://github.com/postgres/postgres/blob/55c3391d1e6a201b5b891781d21fe682a8c64fe6/src/backend/storage/lmgr/lmgr.c#L725 – Hayate