12.4. Ӧ�ò�����������Լ��

��Ϊ�������ָ��뼶�𣬶� PostgreSQL �Ķ����������������ݣ� һ�������ȡ�����ݿ��ܱ���һ�����񸲸ǡ����仰˵�����һ�� SELECT ������һ�У� �Ⲣ����ζ���ڷ��ظ���ʱ���л����ڣ�Ҳ����˵�������ɻ�����ʼ���ijʱ�� ���п����Ѿ���һ���ڴ�����ʼ֮���ύ��������»���ɾ���� ��ʹ����"����"��Ȼ��Ч������Ҳ�����ڵ�ǰ�����ύ���߻ع�֮ǰ���ı����ɾ����

����һ����ʶ���ķ�����ÿ�����񶼿���һ�����ݿ����ݵĿ��գ� ������ִ�е�����ܿ��ܿ�����ͬ�Ŀ��ա� ��˲�������������"����"�ĸ���Ƕ��岻��ġ� ��������ͻ���Ӧ���໥���룬��ô��Ͳ��Ǹ������⣬ ��������ͻ���֮�������ݿ��ⲿ�໥֮��ͨ��ͨ��ͨѶ���ǾͿ��������ص����塣

Ҫ��֤һ�е�ʵ�ʴ��ںͱ����䱻���и��£����DZ���ʹ�� SELECT FOR UPDATE ���߻��ߺ��ʵ� LOCK TABLE ��䡣 ��SELECT FOR UPDATE ֻ�Ƕ������IJ��и�����ס���ص��У��� LOCK TABLE ������������ �������������� PostgreSQL ���ÿɴ��л�ģʽ��ֲӦ��ʱһ��Ҫ����Щ���⿼�ǽ�ȥ�� ���ڰ汾 6.5 ǰ��PostgreSQL ʹ�ö������������������ǰ�� PostgreSQL �汾��6.5������߰汾������ʱҲҪ������Щ���⡣��

�� MVCC �����£�ȫ����Ч�Լ����ҪһЩ����Ŀ��ǡ� ���磬һ������Ӧ�ÿ��ܻ�ϣ�����һ�����ص����пۿ��ܺ͵�������һ�����еļӿ��ܺͣ� ͬʱ�������ᱻ��Ծ�ظ��¡��ڶ����ύģʽ�±Ƚ����������� SELECT sum(...) ����Ľ���Dz��ɿ��ģ� ��Ϊ�ڶ�����ѯ�ܿ��ܻ������һ��û����������ύ�Ľ���� ��һ���ɴ��л�������������������������ڿɴ��л�����ʼ֮ǰ�ύ��������������ľ�ȷ�Ľ�� — �����ǻ��ǻ����������ڽ���ύ��ʱ�������Ƿ���ء� ����ɴ��л�����������ͼ��һ���Լ��֮ǰ������ijЩ����� ��ô���������Ծ͸���ֵ�������ˣ���Ϊ������������һЩ��������ȫ��������ʼ��ı仯�� ����������£�һ����ϸ���˻�ϣ����ס������Ҫ���ı� �������ܻ��һ���޿����ɵĵ�ǰ��״��ͼ�� һ�� SHARE ģʽ�����߸��߼���������֤�ڱ��������г��˵�ǰ����֮�⣬û��δ�ύ�ĸ��¡�

��Ҫע���������������ȷ���������Ⲣ�����£���ô����Ӧ��ʹ�ö����ύģʽ�� �������ڿɴ��л�ģʽ����ִ������֮ǰС�ĵػ�ȡ���� �ڿɴ��л�������Ļ�ȡ������֤�˲����������������е��޸ĸñ��������ڣ� ����������񿴵��Ŀ�����ǰ��ȡ��������ô��������ǰ��һЩ�����Ѿ��ύ�ĸı�ŵ����С� һ���ɴ��л�����Ŀ���ʵ�����������ĵ�һ����ѯ���������޸����ʼ��ʱ�򶳽�ģ�SELECT�� INSERT��UPDATE���� DELETE���� ������ǿ����ڿ��ն���֮ǰ��ȷ��ȡ����