PostgreSQL�ϡ��ơ��֥���Υǡ������Ф���Ʊ���������������椹�뤿��ˤ��ޤ��ޤʼ���Υ��å��⡼�ɤ������Ƥ��ޤ��� �����Υ⡼�ɤϡ�MVCC �Ǥ�ɬ�פ�ư��������ʤ���硢���ץꥱ�����������Υ��å��˻��Ѥ��뤳�Ȥ��Ǥ��ޤ��� �ޤ����ۤȤ�ɤ� PostgreSQL ���ޥ�ɤǤϡ����Ȥ����ơ��֥뤬���Υ��ޥ�ɤμ¹�����̤���ˡ�Ǻ���⤷�����ѹ�����Ƥ��ʤ����Ȥ�μ¤ˤ��뤿��ˡ�Ŭ�ڤʥ⡼�ɤΥ��å���ưŪ�˳������ޤ��� (���Ȥ��С�ALTER TABLE ���ޥ�ɤϡ�Ʊ���ơ��֥���Ф���¾�����Ȥ�Ʊ���˼¹ԤǤ��ޤ���)
�ʲ��Υꥹ�Ȥˡ�PostgreSQL �Ǽ�ưŪ�����椵��롢���Ѳ�ǽ�ʥ��å��⡼�ɤ���Ӥ���餬���Ѥ���륳��ƥ����Ȥ��ޤ��� �����Υ��å��⡼�ɤϡ����Ȥ�����̾���� "row" (��) �Ȥ������դ��Ĥ��Ƥ��Ƥ⡢���٤ƥơ��֥��٥�Υ��å��Ǥ��뤳�Ȥ����դ��Ƥ��������� ���å��⡼�ɤ�̾�������Ū�ʤ�ΤǤ��� ������̾���ϡ��ƥ��å��⡼�ɤ���ɽŪ�ʻ�����ˡ������ɽ���Ƥ��ޤ�������������̣Ū�ˤϤ��٤�Ʊ���Ǥ��� ���å��⡼�ɴ֤ˤ�����ͣ��μ¼�Ū�ʺ��ۤϡ��ɤΥ⡼�ɤ��ɤΥ⡼�ɤȶ��礹�뤫�Ȥ������å��⡼�ɤ��ȹ礻�Ǥ��� 2 �ĤΥȥ�������ǡ����礹��⡼�ɤΥ��å���Ʊ����Ʊ��ơ��֥����ݻ����뤳�ȤϤǤ��ޤ��� (���������ȥ�������ϼ�ʬ���ȤȤϷ褷�ƶ��礷�ޤ����Ȥ��С�ACCESS EXCLUSIVE ���å�������������θ�Ʊ���ơ��֥�� ACCESS SHARE ���å���������뤳�Ȥ��Ǥ��ޤ���) ���礷�ʤ����å��⡼�ɤϡ�¿���Υȥ��������Ʊ�����ݻ����뤳�Ȥ���ǽ�Ǥ��� �äˡ����å��⡼�ɤˤϡ����ʶ��礹���� (���Ȥ��С�ACCESS EXCLUSIVE ��Ʊ����ʣ���Υȥ���������ݻ����뤳�Ȥ��Բ�ǽ) �ȡ����ʶ��礷�ʤ���� (���Ȥ��С�ACCESS SHARE ��ʣ���Υȥ���������ݻ���ǽ) �����뤳�Ȥ����դ��Ƥ��������� ��ö���������ȡ����å��⡼�ɤϥȥ�������λ����ޤǰݻ�����ޤ���
�ǡ����١��������Фˤ����ơ�����̤���Υ��å��Υꥹ�Ȥ�Ĵ�٤�ˤϡ�pg_locks �����ƥ�ӥ塼����Ѥ��Ƥ��������� ���å��ޥ͡����㥵�֥����ƥ�ξ��֤�ɽ���˴ؤ���ܺ٤ϡ�PostgreSQL �������ѥ������Ȥ��Ƥ���������
�ơ��֥��٥���å��⡼��
ACCESS EXCLUSIVE ���å��⡼�ɤȤΤ߶��礷�ޤ���
SELECT ���ޥ�ɤˤ�ꡢ���Ȥ����ơ��֥���Ф��Ƥ��Υ⡼�ɤΥ��å�����������ޤ��� �̾�ơ��֥���ɤ��Τߤ��ѹ���Ԥʤ�ʤ��䤤��碌�Ǥ���Ф��٤ơ����Υ��å��⡼�ɤ�������ޤ���
EXCLUSIVE ����� ACCESS EXCLUSIVE ���å��⡼�ɤȶ��礷�ޤ���
SELECT FOR UPDATE ���ޥ�ɤˤ�ꡢ(���ȤϤ���Ƥ��뤬��FOR UPDATE �Ȥ�������Ϥ���Ƥ��ʤ�¾�Υơ��֥���Ф��� ACCESS SHARE ���å��˲ä���) �оݤȤʤ�ơ��֥��ˤ��Υ⡼�ɤΥ��å���������ޤ���
SHARE��SHARE ROW EXCLUSIVE��EXCLUSIVE������� ACCESS EXCLUSIVE ���å��⡼�ɤȶ��礷�ޤ���
UPDATE��DELETE������� INSERT ���ޥ�ɤϡ�(���Ȥ����¾�Τ��٤ƤΥơ��֥���Ф��� ACCESS SHARE ���å��˲ä���) �оݤȤʤ�ơ��֥��ˤ��Υ⡼�ɤΥ��å���������ޤ��� �̾���Υ��å��⡼�ɤϡ��ơ��֥�Υǡ������ѹ������䤤��碌�ˤ���������ޤ���
SHARE UPDATE EXCLUSIVE��SHARE��SHARE ROW EXCLUSIVE��EXCLUSIVE������� ACCESS EXCLUSIVE ���å��⡼�ɤȶ��礷�ޤ��� ���Υ⡼�ɤˤ�ꡢƱ���¹���Υ������ޤˤ���ѹ������ VACUUM ���ޥ�ɤμ¹Ԥ��顢�ơ��֥���ݸ�ޤ���
VACUUM ���ޥ�ɤˤ�äƳ�������ޤ� (FULL ���ץ����̵��)��
ROW EXCLUSIVE��SHARE UPDATE EXCLUSIVE��SHARE ROW EXCLUSIVE��EXCLUSIVE������� ACCESS EXCLUSIVE ���å��⡼�ɤȶ��礷�ޤ��� ���Υ⡼�ɤˤ�ꡢƱ���¹Ԥ����ǡ����ѹ�����ơ��֥���ݸ�ޤ���
CREATE INDEX �ˤ�äƳ�������ޤ���
ROW EXCLUSIVE��SHARE UPDATE EXCLUSIVE��SHARE��SHARE ROW EXCLUSIVE��EXCLUSIVE������� ACCESS EXCLUSIVE ���å��⡼�ɤȶ��礷�ޤ���
���Υ��å��⡼�ɤ�ưŪ�˳������� PostgreSQL ���ޥ�ɤϤ���ޤ���
ROW SHARE��ROW EXCLUSIVE��SHARE UPDATE EXCLUSIVE��SHARE��SHARE ROW EXCLUSIVE��EXCLUSIVE������� ACCESS EXCLUSIVE ���å��⡼�ɤȶ��礷�ޤ��� ���Υ⡼�ɤϡ�Ʊ���¹Ԥ���� ACCESS SHARE �Τߤ���Ĥ��ޤ������Ȥ��С����Υ��å��⡼�ɤ��ݻ�����ȥ���������¹Ԥ��Ƽ¹ԤǤ�������ϡ��ơ��֥���ɤ������Ǥ���
���Υ��å��⡼�ɤ�ưŪ�˳������� PostgreSQL ���ޥ�ɤϤ���ޤ���
���٤ƤΥ��å��⡼�� (ACCESS SHARE��ROW SHARE��ROW EXCLUSIVE��SHARE UPDATE EXCLUSIVE��SHARE��SHARE ROW EXCLUSIVE��EXCLUSIVE������� ACCESS EXCLUSIVE) �ȶ��礷�ޤ��� ���Υ⡼�ɤˤ�ꡢ���ν�ͭ�ʳ��˥ơ��֥�˥�����������ȥ������ʤ����Ȥ��ݾڤ���ޤ���
ALTER TABLE��DROP TABLE������� VACUUM FULL ���ޥ�ɤˤ�äƳ�������ޤ��� �ޤ�������Ū�˥⡼�ɤ���ꤷ�ʤ���С����줬 LOCK TABLE ʸ����Ѥ���ݤΥǥե���ȤΥ��å��⡼�ɤǤ���
Note: ACCESS EXCLUSIVE ���å��Τߤ���SELECT (FOR UPDATE ̵��) ʸ��֥��å����ޤ���
�ơ��֥��٥���å��˲ä��ơ��ԥ�٥�Υ��å��⤢��ޤ��� ���ꤵ�줿�Ԥ��Ф���ԥ�٥���å��ϡ��Ԥ����� (�ޤ��Ϻ�����ޤ��Ϲ����оݤȤ��ƥޡ���) �����ȡ���ưŪ�˳�������ޤ��� ���Υ��å��ϡ��ȥ��������ߥåȤޤ��ϥ�����Хå�����ޤ��ݻ�����ޤ��� �ԥ�٥���å��ϡ��ǡ������䤤��碌�ˤϱƶ���Ϳ���ޤ��ԥ�٥���å��ϡ�Ʊ���Ԥ��Ф�������Τߤ�֥��å����ޤ��� �ºݤ˹Ԥ��ѹ������˹Ԥ��Ф��ƹԥ�٥���å����������ˤϡ���������Ԥ� SELECT FOR UPDATE �����Ƥ��������� ���ä�������ιԥ�٥���å������������ȡ�������ۤ��ʤ��ǡ����Υȥ���������Ǥϲ���Ǥ�Ԥ��ѹ�����ǽ�Ǥ��뤳�Ȥ�Ф��Ƥ����Ƥ���������
PostgreSQL �Ǥϡ��������ѹ����줿�Ԥξ�������ʤ����ᡢƱ���˥��å��Ǥ���Կ��ξ�¤Ϥ���ޤ����������Ԥ���å�����ݤˡ��ǥ������˽����Ȥ�ȯ�����뤫�⤷��ޤ��� �������äơ����Ȥ���SELECT FOR UPDATE�����줿�Ԥ˰����դ����ѹ���Ԥ����ǥ������ˤ��η�̤���ळ�Ȥˤʤ�ޤ���
�ơ��֥�ȹԥ��å��˲ä����ڡ�����٥�ζ�ͭ/��¾���å������ꡢ�����϶�ͭ�Хåե��ס���ˤ���ơ��֥�ڡ����ؤ��ɤ߽Υ���������������뤿��˻��Ѥ���ޤ��������Υ��å��ϥ��ץ뤬�������줿�Ȥ��乹�����줿�Ȥ��ˡ�¨�¤˲������ޤ������ץꥱ�������ȯ�Ԥ��ä˥ڡ�����٥���å����θ����ɬ�פϤ���ޤ��� ���å��ˤĤ������Ƥ������������ä�����ڡ�����٥���å����������ޤ�����
����Ū�ʥ��å��λ��Ѥϡ��ǥåɥ��å��θ����Ȥʤ��ǽ��������ޤ����ǥåɥ��å��Ȥϡ�2 �� (�⤷���Ϥ���ʾ�) �Υȥ�������ˤ����ơ����줾�줬��¾���Υȥ�������ɬ�פȤ�����å��������Ƥ��ޤ����ȤǤ��� ���Ȥ��С��ȥ������� 1 ���ơ��֥� A ����¾���å���������Ƥ��ơ����˥ơ��֥� B ����¾���å���������褦�Ȥ���ݤˡ��ȥ������� 2 �����Ǥ˥ơ��֥� B ����¾���å�������ѤߤǤ��äơ�������ơ��֥� A ����¾���å���������褦�Ȼ�ߤ��硢�ɤ���Υȥ�������������ʤ���ޤ��� PostgreSQL �Ǥϡ���ưŪ�˥ǥåɥ��å��������ɤ����ط�����ȥ�������ΰ����ܡ��Ȥ��뤳�Ȥˤ�ꡢ���ξ������褷���⤦�����Υȥ�������ν�����λ�����ޤ��� (�ɤ���Υȥ�������ܡ��Ȥ��뤫�����Τ�ͽ������Τ��������ꤷ���뺬��Ϥ���ޤ���)��
�ǥåɥ��å����ɤ��Ǥ��ɤ���ˡ�ϡ��ǡ����١�������Ѥ��뤹�٤ƤΥ��ץꥱ��������������Τ�������ʣ���Υ��֥������Ȥ��Ф�����å���������뤳�ȤǤ��� �ޤ����ȥ���������Υ��֥������Ȥ��Ф��Ƴ��������ǽ�Υ��å����Υ��֥������Ȥ�ɬ�פȤ���ǹ�̤Υ⡼�ɤˤ��뤳�Ȥ�ǥåɥ��å����ɤ���ˡ�� 1 �ĤǤ��� ���Τ��Ȥ������˸��ڤǤ��ʤ���硢�ǥåɥ��å��ˤ�ꥢ�ܡ��Ȥ��줿�ȥ��������ƻ�Ԥ���С��ǥåɥ��å���ǡ����١������Ư�����ʤ���Ǥ�������뤳�Ȥ��Ǥ��ޤ���
�ǥåɥ��å����������Ф���ʤ���С��ơ��֥��٥���å��⤷���Ϲԥ�٥���å����᤹��ȥ�������ϡ����礹����å������������ޤǡ�̵���¤��Ե����ޤ��� �������äơ����ץꥱ��������Ĺ���� (���Ȥ��С��桼���������Ԥ�) �ȥ���������ץ��ޤ��ݻ����Ƥ����Τϡ��侩����ޤ���