PostgreSQL: ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΠΎ ΡΡΡΡΡΠΈΠΊΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ
Π‘ΡΠ°ΡΡΡ ΠΏΠΎΠ³ΡΡΠΆΠ°Π΅Ρ Π² ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΠ΅ΡΡΠΈΠΊΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ PostgreSQL ΠΈ MVCC Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ Π²ΡΡΠΎΠΊΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ. Π Π°Π·Π±Π΅ΡΠΈΡΠ΅ΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ 32-Π±ΠΈΡΠ½ΡΠ΅ xid ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ ΠΊΠ°ΠΊ 64-Π±ΠΈΡΠ½ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΡΠ΅ΡΠ°ΡΡ ΠΈΡ .
ΠΠ½ΠΎΠ³ΠΈΠ΅ Π³ΠΎΠ΄Ρ ΡΡΠΈΡΠ°Π»ΠΎΡΡ, ΡΡΠΎ PostgreSQL Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌ Ρ Π²ΡΡΠΎΠΊΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ. ΠΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π²ΡΡ ΡΠ°ΡΠ΅ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π΄Π°ΠΆΠ΅ ΠΊΡΡΠΏΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΡ Π‘Π£ΠΠ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅, Π²ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈ PostgreSQL. ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΊΠΈΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ² β ΡΡΡΡΡΠΈΠΊ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΡΡΡΡΠΈΠΊ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ Π½ΡΠΆΠ΅Π½?
PostgreSQL ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠ²Π΅ΡΡΠΈΠΎΠ½Π½ΠΎΡΡΠΈ (MVCC) Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΠΈΡΠ°ΡΡΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΡΡ ΠΏΠΈΡΡΡΠΈΠ΅, ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ. ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎ ΡΠ²ΠΎΠ΅ΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ Π΄Π°Π½Π½ΡΡ , Π° Π΄ΠΎΡΡΡΠΏ ΡΠ΅Π³ΡΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΡΠ΅Ρ MVCC, ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±Π°Π·Ρ Π΅ΡΡΡ ΡΠ²ΠΎΠΉ Β«ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ½ΠΈΠΌΠΎΠΊΒ» Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ³Π΄Π° Π²Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π½Π° ΡΡΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ, Π½Π΅ Π²Π»ΠΈΡΡΡ Π½Π° Π²Π°Ρ ΡΠ½ΠΈΠΌΠΎΠΊ, ΠΏΠΎΠΊΠ° Π²Ρ Π½Π΅ Π·Π°Π²Π΅ΡΡΠΈΡΠ΅ ΡΠ²ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΈ Π½Π΅ Π½Π°ΡΠ½Π΅ΡΠ΅ Π½ΠΎΠ²ΡΡ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΈΡΠ°ΡΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π΄Π°Π½Π½ΡΠ΅, Π½Π΅ ΠΌΠ΅ΡΠ°Ρ Π΄ΡΡΠ³ Π΄ΡΡΠ³Ρ.
MVCC Π² PostgreSQL ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΡ ΠΎΠΆΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
- ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ β ΡΡΠΎ ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠΌ. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π²ΠΈΠ΄ΠΈΡ Β«ΡΠ½ΠΈΠΌΠΎΠΊΒ» Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ Π½Π°ΡΠ°Π»Π°.
- ΠΠΎΠ³Π΄Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅, ΠΎΠ½Π° Π½Π΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΡΠ°ΡΡΠ΅. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ½Π½ΡΡ ΡΡΡΠΎΠΊ.
ΠΠ°ΠΆΠ΄Π°Ρ Π²Π΅ΡΡΠΈΡ ΡΡΡΠΎΠΊΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΊΠΈ:
- xmin β ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ·Π΄Π°Π»Π° Π²Π΅ΡΡΠΈΡ.
- xmax β ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ΄Π°Π»ΠΈΠ»Π° (ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»Π°) Π²Π΅ΡΡΠΈΡ. ΠΡΠ»ΠΈ ΡΡΡΠΎΠΊΠ° Π΅ΡΡ Π½Π΅ ΡΠ΄Π°Π»Π΅Π½Π°, xmax ΠΏΡΡΡΠΎΠΉ.
ΠΠΎΠ³Π΄Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΡΠΈΡΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅, PostgreSQL ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊΡΡ Π²Π΅ΡΡΠΈΡ ΡΡΡΠΎΠΊΠΈ Π΅ΠΉ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠ°Π²ΠΈΠ» Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ:
- ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π²ΠΈΠ΄ΠΈΡ ΡΡΡΠΎΠΊΠΈ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π΄ΠΎ Π΅Ρ Π½Π°ΡΠ°Π»Π° (xmin ΠΌΠ΅Π½ΡΡΠ΅ Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°), ΠΈ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ ΡΠ΄Π°Π»ΡΠ½Π½ΡΠ΅ (xmax ΠΏΡΡΡΠΎΠΉ ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°);
- ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π²ΠΈΠ΄ΠΈΡ ΡΡΡΠΎΠΊΠΈ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π΅Ρ ΡΠ°ΠΌΠΎΠΉ;
- ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ ΡΡΡΠΎΠΊΠΈ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΠ°Π»ΠΈΡΡ ΠΏΠΎΠ·ΠΆΠ΅ Π½Π΅Ρ (xmin Π±ΠΎΠ»ΡΡΠ΅ Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°).
ΠΡΠΈΠΌΠ΅Ρ:
ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ° users Ρ Π΄Π°Π½Π½ΡΠΌΠΈ:
1. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 1 (xid=100) Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΠΈ ΡΠΈΡΠ°Π΅Ρ ΡΠ°Π±Π»ΠΈΡΡ ΠΠ½Π° Π²ΠΈΠ΄ΠΈΡ ΠΎΠ±Π΅ ΡΡΡΠΎΠΊΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ Π΄ΠΎ Π΅Ρ Π½Π°ΡΠ°Π»Π°, ΠΈ xmax Ρ Π½ΠΈΡ ΠΏΡΡΡΠΎΠΉ.
2. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 2 (xid=105) Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΡΠ°ΡΡ Alice Π½Π° 31. PostgreSQL Π½Π΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΡΡΠΎΠΊΡ Alice, Π° ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ:
3. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Ρ ΡΡΠ°ΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Alice xmax ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°Π²Π΅Π½ 105 (ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ 2), Π° Ρ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ xmin ΡΠ°Π²Π΅Π½ 105.
4. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 1 ΡΠ½ΠΎΠ²Π° ΡΠΈΡΠ°Π΅Ρ ΡΠ°Π±Π»ΠΈΡΡ. ΠΠ½Π° ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π²ΠΈΠ΄ΠΈΡ ΡΡΠ°ΡΡΡ Π²Π΅ΡΡΠΈΡ Alice (Π²ΠΎΠ·ΡΠ°ΡΡ 30), ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°ΡΠ°Π»Π°ΡΡ ΠΏΠΎΠ·ΠΆΠ΅ (105 > 100), Π° ΡΡΠ°ΡΠ°Ρ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π° ΠΊΠ°ΠΊ ΡΠ΄Π°Π»ΡΠ½Π½Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ.
5. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 2 ΡΠΈΠΊΡΠΈΡΡΠ΅ΡΡΡ.
6. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 3 (xid=110) Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΠΈ ΡΠΈΡΠ°Π΅Ρ ΡΠ°Π±Π»ΠΈΡΡ Π’Π΅ΠΏΠ΅ΡΡ ΠΎΠ½Π° Π²ΠΈΠ΄ΠΈΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ Alice (Π²ΠΎΠ·ΡΠ°ΡΡ 31), ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 2, ΠΊΠΎΡΠΎΡΠ°Ρ Π΅Ρ ΡΠΎΠ·Π΄Π°Π»Π°, ΡΠΆΠ΅ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π°, ΠΈ Π΅Ρ xid ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ΅ΠΌ Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ 3.
ΠΠ°ΠΆΠ½ΠΎ: Π½ΠΎΠΌΠ΅ΡΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ (xid) Π½Π΅ ΡΡΠΎΠΈΡ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π° (Β«Π±ΠΎΠ»ΡΡΠ΅Β» ΠΈΠ»ΠΈ Β«ΠΌΠ΅Π½ΡΡΠ΅Β»). ΠΠΎΡΡΠ΅ΠΊΡΠ½Π΅Π΅ Π³ΠΎΠ²ΠΎΡΠΈΡΡ Β«ΡΡΠ°ΡΡΠ΅Β» ΠΈΠ»ΠΈ Β«ΠΌΠ»Π°Π΄ΡΠ΅Β». ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π½ΠΎΠΌΠ΅ΡΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ 232, ΠΎΠ±ΡΠ°Π·ΡΡ ΠΊΠΎΠ»ΡΡΠΎ. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΎΡΡΡΠ°ΡΡΠΈΠ΅ ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π½Π° 231 Π½Π°Π·Π°Π΄, ΡΡΠΈΡΠ°ΡΡΡΡ Β«ΡΡΠ°ΡΡΠ΅Β» (Β«Π² ΠΏΡΠΎΡΠ»ΠΎΠΌΒ»), Π° Π½Π° 231 Π²ΠΏΠ΅ΡΡΠ΄ β Β«ΠΌΠ»Π°Π΄ΡΠ΅Β» (Β«Π² Π±ΡΠ΄ΡΡΠ΅ΠΌΒ»).
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅ ΠΊΡΡΠ³:
- ΡΠ΅ΠΊΡΡΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ β ΡΡΠΎ ΡΠΎΡΠΊΠ° Π½Π° ΠΊΡΡΠ³Π΅;
- Β«ΠΏΡΠΎΡΠ»ΡΠ΅Β» ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ β ΡΡΠΎ ΡΠΎΡΠΊΠΈ ΡΠ»Π΅Π²Π° ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ, Π΅ΡΠ»ΠΈ Π΄Π²ΠΈΠ³Π°ΡΡΡΡ ΠΏΡΠΎΡΠΈΠ² ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠΈ;
- Β«Π±ΡΠ΄ΡΡΠΈΠ΅Β» ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ β ΡΠΎΡΠΊΠΈ ΡΠΏΡΠ°Π²Π°.
ΠΠ°ΠΆΠ΄Π°Ρ Π·Π°ΠΏΠΈΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠ΅ ΠΏΠΎΠ»Ρ xmin ΠΈ xmax. Π xmin Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π½ΠΎΠΌΠ΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΡΠΎΠ·Π΄Π°Π²ΡΠ΅ΠΉ Π·Π°ΠΏΠΈΡΡ, Π° Π² xmax β Π½ΠΎΠΌΠ΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΡΠ΄Π°Π»ΠΈΠ²ΡΠ΅ΠΉ Π΅Ρ. Π£ΡΠ΅ΡΠΎΠΌ ΡΡΠΈΡ Π½ΠΎΠΌΠ΅ΡΠΎΠ² ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΡΠ΅ΡΡΠΈΠΊ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.
ΠΠ°ΠΊ ΡΠ°Π·Π²ΠΈΠ²Π°Π»ΡΡ ΡΡΡΡΡΠΈΠΊ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ
ΠΠΎ Π²Π΅ΡΡΠΈΠΈ PostgreSQL 8.2 ΠΏΡΠΈ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΡΡΡΠΈΠΊΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ (ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 4 ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄Π°) PostgreSQL ΠΏΡΠΎΡΡΠΎ Β«ΠΏΠ°Π΄Π°Π»Β». Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ°Π±ΠΎΡΡ, Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΄Π°ΠΌΠΏ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π΅Ρ Π·Π°Π½ΠΎΠ²ΠΎ.
Π Π²Π΅ΡΡΠΈΠΈ 8.2 ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ° ΡΡΡΡΡΠΈΠΊΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΡΠΈΡΡΠΊΠΈ (VACUUM).
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ:
- Β«ΠΠ°ΠΌΠΎΡΠΎΠ·ΠΊΠ°Β» ΡΡΠ°ΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ: ΠΠΎΠ³Π΄Π° Π½Π° VACUUM ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΡΡΡΠΈΠΊ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΡΠΊΠΎΡΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½ΠΈΡΡΡ, ΠΎΠ½ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΡΡΠ°ΡΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ FrozenTransactionId. ΠΠΎ ΡΡΡΠΈ, VACUUM Π³ΠΎΠ²ΠΎΡΠΈΡ: Β«ΠΡΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΡΡΠ΅, ΡΡΠΎ ΠΌΡ ΡΡΠΈΡΠ°Π΅ΠΌ ΠΈΡ Π·Π°ΠΌΠΎΡΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ. ΠΡ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅ΠΌ ΡΡΠΈΡΠ°ΡΡ ΠΈΡ ΡΡΠ°ΡΡΠ΅ Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.Β»
- Π‘ΡΡΡΡΠΈΠΊ ΡΠΏΠΎΡ : Π§ΡΠΎΠ±Ρ PostgreSQL Π·Π½Π°Π», ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΡΡΡΡΡΠΈΠΊ ΡΠΆΠ΅ Β«ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π»ΡΡΒ», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΡΡΡΠΈΠΊ ΡΠΏΠΎΡ . ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΡΡΡΡΡΠΈΠΊ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π΄ΠΎΡ ΠΎΠ΄ΠΈΡ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π·Π°Π½ΠΎΠ²ΠΎ, ΡΡΡΡΡΠΈΠΊ ΡΠΏΠΎΡ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ.
- Π¦ΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊ: ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ VACUUM Β«Π·Π°ΠΌΠΎΡΠΎΠ·ΠΈΡΒ» ΡΡΠ°ΡΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΡΡΡΡΡΠΈΠΊ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Π½Π°ΡΠ°ΡΡ ΡΡΠΈΡΠ°ΡΡ Π·Π°Π½ΠΎΠ²ΠΎ Ρ ΡΡΡΡ . PostgreSQL ΡΠ΅ΠΏΠ΅ΡΡ Π·Π½Π°Π΅Ρ, ΡΡΠΎ Π²ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ FrozenTransactionId ΡΡΠ°ΡΡΠ΅ Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΈΡ Π½ΠΎΠΌΠ΅ΡΠ° ΠΌΠ΅Π½ΡΡΠ΅.
ΠΡΠΎ ΡΠ΅ΡΠΈΠ»ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Β«ΠΏΠ°Π΄Π΅Π½ΠΈΡΒ», Π½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π½ΠΎΠ²Π°Ρ: Π΅ΡΠ»ΠΈ VACUUM Π½Π΅ ΡΡΠΏΠ΅Π²Π°Π΅Ρ ΠΎΡΡΠ°Π±ΠΎΡΠ°ΡΡ Π²ΠΎΠ²ΡΠ΅ΠΌΡ, ΡΠ΅ΡΠ²Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ Π·Π°ΠΏΡΡΠΊΠ° Π² ΠΌΠΎΠ½ΠΎΠΏΠΎΠ»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π΄Π»Ρ ΠΎΡΠΈΡΡΠΊΠΈ, ΡΡΠΎ Π²Π΅Π΄ΡΡ ΠΊ ΠΏΡΠΎΡΡΠΎΡ.
Π ΡΡΠΌ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°?
Π‘Π°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΡΡΡΡΠΈΠΊΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΎΡΠΎΡΠΎ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΡΡ, ΠΊΠΎΠ³Π΄Π° 32-Π±ΠΈΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ (Π±ΠΎΠ»Π΅Π΅ 4 ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄ΠΎΠ²) ΠΊΠ°Π·Π°Π»ΠΎΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΌ. Π‘Π΅ΠΉΡΠ°Ρ ΠΆΠ΅, Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ Π²ΡΡΠΎΠΊΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ (ΡΠ΅ΡΠ΅ΠΉΠ», ΠΊΡΡΠΏΠ½ΡΠ΅ Π·Π°Π²ΠΎΠ΄Ρ, Π³ΠΎΡΡΡΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ), ΡΡΡΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ ΡΠ°Π· Π² ΡΡΡΠΊΠΈ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ:
Π‘ΡΠ΅Π΄ΠΈ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π·Π°ΠΏΠΈΡΠΈ Π΅ΡΡΡ ΠΏΠΎΠ»Π΅ ΡΠ»Π°Π³ΠΎΠ². ΠΠ»Ρ ΡΡΠ°ΡΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ VACUUM FREEZE, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΠΈΡ ΠΊΠ°ΠΊ Β«Π·Π°ΠΌΠΎΡΠΎΠΆΠ΅Π½Π½ΡΠ΅Β» (FrozenTransactionId).
ΠΠ»Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ:
- ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ ΡΠ°ΠΌΠΎΠΉ ΡΡΠ°ΡΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π½Π΅ ΠΏΡΠ΅Π²ΡΡΠ°Π»Π° 2^32;
- VACUUM FREEZE Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΡΡ Π΄ΠΎ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ.
Π ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΌΠΈΡΠ΅ ΡΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ:
- Β«Π΄ΠΎΠ»Π³ΠΈΠ΅Β» ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΌΠ΅ΡΠ°ΡΡ VACUUM FREEZE;
- ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Β«Π΄ΠΎΠ»Π³Π°ΡΒ», Π° ΠΊΠΎΠ³Π΄Π° Β«Π·Π°Π²ΠΈΡΡΠ°ΡΒ»;
- Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π±ΠΈΡΡ ΡΡΠ΅Π²ΠΎΠ³Ρ ΠΈΠ·-Π·Π° ΠΈΡΡΠ΅ΡΠΏΠ°Π½ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ²;
- Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΠ Π½Π΅ΡΡΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ Π·Π° ΠΏΠΎΡΠ΅ΡΠΈ Π±ΠΈΠ·Π½Π΅ΡΠ° ΠΈΠ·-Π·Π° ΡΠ²ΠΎΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ.
ΠΡΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠ»Π°ΡΡΠ΅Ρ ΠΠ, Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ Π² ΠΌΠΎΠ½ΠΎΠΏΠΎΠ»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΠΎΠ², ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²Π°Ρ Π½Π΅ ΠΊΠ°ΡΠ°Π΅ΡΡΡ. ΠΠΎ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ Π²ΡΡΠΎΠΊΠΈΠΌΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ ΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΡΡΠΎΠΉ β Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌ.
ΠΡΠ΄Π΅Π»ΡΠ½ΠΎ ΡΡΠΎΠΈΡ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π² ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ (insert-only). Π Π½ΠΈΡ VACUUM Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π΄Π»Ρ Β«Π·Π°ΠΌΠΎΡΠΎΠ·ΠΊΠΈΒ» ΡΡΠ°ΡΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅: 64-Π±ΠΈΡΠ½ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ
ΠΠ°Π·Π°Π»ΠΎΡΡ Π±Ρ, ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ β ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΡΡΡΠΈΠΊΠ° Π΄ΠΎ 64 Π±ΠΈΡ. ΠΠΎ ΡΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ:
- Π²Π΅ΡΡ ΠΊΠΎΠ΄ PostgreSQL ΠΎΠΆΠΈΠ΄Π°Π΅Ρ Β«Π²ΠΈΠ΄Π΅ΡΡΒ» 32-Π±ΠΈΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π°;
- Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ (Π·Π°ΠΏΠΈΡΠΈ) Ρ ΡΠ°Π½ΡΡΡΡ xmin ΠΈ xmax. Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° Ρ 8 Π΄ΠΎ 16 Π±Π°ΠΉΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ Π±Π°Π·Ρ.
ΠΡ Π² Postgres Professional ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ 64-Π±ΠΈΡΠ½ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ (xid), ΡΠ²Π΅Π»ΠΈΡΠΈΠ² ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄ΠΎ 18 446 744 073 709 551 615 (264). ΠΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠΎΡΠΊΠ°Ρ PostgreSQL. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΡΡΡΠΈΠΊΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π³ΠΈΠΏΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ (ΠΏΡΠΈ Π²ΡΡΠΎΠΊΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠ΅ 64-Π±ΠΈΡΠ½ΡΠΉ ΡΡΡΡΡΠΈΠΊ ΠΈΡΡΠ΅ΡΠΏΠ°Π΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π· 400 Π»Π΅Ρ).
ΠΠ°ΡΡ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π±ΡΠ» ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Ρ PostgreSQL, Π½ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡΠΈΠ½ΡΡ ΠΈΠ·-Π·Π° Π΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠΎΡΠΊΠΎΠ² PostgreSQL ΡΠΆΠ΅ Π·Π°ΡΠ²ΠΈΠ»ΠΈ ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ 64-Π±ΠΈΡΠ½ΡΡ xid Π² ΡΠ²ΠΎΠΈΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ .
Π¦Π΅Π»Ρ Postgres Professional β Π½Π΅ ΠΏΡΠΎΠ΄Π²ΠΈΠ³Π°ΡΡ ΡΠ²ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎ Π²Π΅ΡΠ½ΡΠΉ, Π° ΠΏΡΠΈΠ²Π»Π΅ΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ ΠΈ ΡΡΠΈΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΠΊ ΠΏΠΎΠΈΡΠΊΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠ΅ΡΠ²Π°Ρ ΡΠ°ΡΡΡ ΡΠ΄Π°Π»Π°ΡΡ: ΠΈΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. ΠΠΎ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ β Π΄ΠΎΠ»Π³ΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ. Π ΠΎΡΡ Π½Π°Π³ΡΡΠ·ΠΎΠΊ Π½Π° Π‘Π£ΠΠ Π²ΠΎ Π²ΡΡΠΌ ΠΌΠΈΡΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²Π°ΠΆΠ½ΠΎΡΡΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΡ Π½Π°Π΄Π΅Π΅ΠΌΡΡ, ΡΡΠΎ PostgreSQL ΡΠΌΠΎΠΆΠ΅Ρ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΊ ΡΠ°ΡΡΡΡΠΈΠΌ Π½Π°Π³ΡΡΠ·ΠΊΠ°ΠΌ ΠΈ ΡΠΊΡΠ΅ΠΏΠΈΡΡ ΡΠ²ΠΎΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π½Π° ΡΡΠ½ΠΊΠ΅.