ΠΠ° 24 ΡΠ΅ΠΏΡΠ΅ΠΌΠ²ΡΠΈ Π΅ΠΊΠΈΠΏΡΡ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΠ±ΡΠ²ΠΈ ΠΏΡΡΠΊΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ»Π΅Π΄Π²Π°ΡΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° Postgresql Π½ΠΎΠΌΠ΅Ρ 13. ΠΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ°, Π½Π°ΡΠ΅Π΄ Ρ Π΄ΡΡΠ³ΠΈ Π½Π΅ΡΠ°, Π²ΡΡΡ Ρ ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, ΡΡΠΊΠΎΡΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΡΡΠ΅ΡΠ½ΠΈΡΠ΅ ΡΡΠ»ΡΠ³ΠΈ Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° ΠΈ ΠΎΠΏΡΠΎΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΏΠΎ-Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°.
ΠΡΠΎΠ΄ΡΠ»ΠΆΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΠΏΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π±Π»ΠΈΡΠΈ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΠΈ ΡΡΠ΅Π΄ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π² Π±ΠΈΠ½Π°ΡΠ½ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΈ Π΄ΡΡΠ²Π΅ΡΠ°, ΠΊΠΎΠ΅ΡΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡΠ°ΠΌΠΎ Π΄Π° ΡΠ΅ ΡΡΠΊΠΎΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ°, Π½ΠΎ ΠΈ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, Π·Π°Π΅ΠΌΠ°Π½ΠΎ ΠΎΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π·Π° ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠΎΡΡΠΈΡΠ°Π½Π΅, ΠΏΡΠΈ ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΡΠΎ ΡΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, Π²Π΅ΡΠ΅ ΡΠΎΡΡΠΈΡΠ°Π½ΠΈ Π² ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈ ΡΡΡΠΏΠΊΠΈ, ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ ΠΈ Π½ΡΠΊΠΎΠΈ Π·Π°ΡΠ²ΠΊΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈ ΡΡΠ΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ (ΡΡΠ΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° CREATE STATISTICS) ΠΏΡΠΈ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½Π° ΡΡΡΠΏΠΊΠ°- ΠΏΠΎΠ΅ΡΠ°ΠΏΠ΅Π½ ΠΏΠ»Π°Π½.
ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ ΡΡΡ ΡΠΊΡΠΏΠΎ ΡΡΡΡΠ²Π°ΡΠΎ Π°Π³ΡΠ΅Π³ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΡΡΡΠΎ Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΡΡΠ΅Π· ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Ρ
Π΅ΡΠΈΡΠ°Π½ΠΎ Π°Π³ΡΠ΅Π³ΠΈΡΠ°Π½Π΅ ΠΈ ΠΈΠ·Ρ
Π²ΡΡΠ»ΡΠ½Π΅ Π½Π° ΡΠ°ΡΡ ΠΎΡ Π°Π³ΡΠ΅Π³ΠΈΡΠ°Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π½Π° Π΄ΠΈΡΠΊ, Π°ΠΊΠΎ Π½Π΅ ΡΠ΅ ΠΏΠΎΠ±ΠΈΡΠ°Ρ Π² RAM. ΠΠΌΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° ΠΌΠ°ΡΠΈ, ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΄ΡΠ»ΠΎΠ²Π΅.
ΠΠ΅ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ΅Π½Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½Π° ΡΠ°Π±ΠΎΡΠ° Π·Π° ΠΎΠΏΡΠΎΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π±Π°Π·ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π½Π° Postgresql. ΠΠ³ΡΠ°Π΄Π΅Π½Π°ΡΠ° Π·Π°Π΄Π°ΡΠ° Π·Π° βΠ²Π°ΠΊΡΡΠΌΠΈΡΠ°Π½Π΅β, ΡΠΎΠ΅ΡΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ Π΄ΠΈΡΠΊΠΎΠ²ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΡΠ»Π΅Π΄ ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π΄ΠΎΠ²Π΅, Π²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π² ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ Π½ΠΈΡΠΊΠΈ ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡΡ Π²Π΅ΡΠ΅ ΠΈΠΌΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΠΏΠΎΡΠΎΡΠΈ ΡΠ΅Ρ Π½ΠΈΡ Π±ΡΠΎΠΉ. Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΡΠΎΠ²Π° ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π½ΠΎΠ²ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΠΊΡΡΠ°ΡΠ° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡ Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΈ ΡΠ° ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΡΠ΅Π΄ΠΈ Π·Π°ΠΏΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π³Π»Π°Π²Π½ΠΈΡ ΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈΡΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈ ΠΏΡΠΈ ΠΏΡΠ΅ΠΊΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈΡΠ΅ ΠΈΠ»ΠΈ Π΄Π° Π½Π°ΡΡΡΠΈ ΡΠ΅Π»ΠΎΡΡΡΠ° Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠ΅ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ Π±ΡΠ΄Π°Ρ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²Π΅Π½ΠΈ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
Π‘ΡΠ΅Π΄ ΠΈΠ½ΠΎΠ²Π°ΡΠΈΠΈΡΠ΅ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΡΠΈ ΡΡΡΡΠ²Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄ΡΠ΅ΡΡΠ°Π΅ ΡΡΠ½ΠΊΡΠΈΡΡΠ° datetime(), ΠΊΠΎΡΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈ Π·Π° Π·Π°ΠΏΠΈΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅ Π²ΡΠ² Π²Π³ΡΠ°Π΄Π΅Π½ ΡΠΈΠΏ Postgresql; Π€ΡΠ½ΠΊΡΠΈΡ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° UUID v4, Π½Π°Π»ΠΈΡΠ½Π° ΠΈΠ·Π²ΡΠ½ ΠΊΡΡΠΈΡΡΠ° gen_random_uuid(); Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Ρ Unicode; ΠΏΠΎ-Π³ΡΠ²ΠΊΠ°Π²Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ Π² ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ Π²ΡΠ·Π»ΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Ρ ΠΏΡΠ»Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ Π½Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎ Π½ΠΈΠ²ΠΎ, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΠΈ Π½ΠΎΠ²ΠΈ ΡΡΠΈΠ³Π΅ΡΠΈ, Π½Π°Π»ΠΈΡΠ½ΠΈ Π·Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ.
ΠΠΎΠ½ΡΡΠΎΠ»ΡΡ Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π΅ ΠΏΠΎΡΠΎΡΠ΅Π½ ΠΊΠ°ΡΠΎ Π΅Π΄ΠΈΠ½ ΠΎΡ ΠΊΠ»ΡΡΠΎΠ²ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΈ Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ ΠΏΡΠ°Π²ΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΊΡΠ°ΡΠΊΠΈ Π½Π°ΠΏΡΠ΅Π΄ Π² ΡΠΎΠ²Π° ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅. ΠΠ΅ΡΠ΅ ΡΠ°ΠΌΠΎ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» (ΡΡΠΏΠ΅ΡΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π») ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ ΠΊΡΠΌ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ. Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Ρ ΡΠ°ΠΌΠΎ ΠΎΠ½Π΅Π·ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΌΠ°ΡΠΊΠΈΡΠ°Π»ΠΈ ΠΊΠ°ΡΠΎ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ, ΠΈΠ»ΠΈ ΠΌΠ°Π»ΡΠΊ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΡΠΈΡΠ°Ρ Π·Π° Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ pgcrypto, tablefunc ΠΈΠ»ΠΈ hstore). ΠΡΠΈ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° SCRAM (ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ ΡΡΠ΅Π· Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° libpq), Π²Π΅ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° βΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° ΠΊΠ°Π½Π°Π»β ΠΈ ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π·Π° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ° Π·Π° Π΄Π°Π½Π½ΠΈ Π½Π° ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ postgres_fdw ΠΎΡ Π²Π΅ΡΡΠΈΡ 13 ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΎΡΠΎΡΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ.
ΠΠ΅Π»Π΅ΠΆΠΊΠΈ ΠΊΡΠΌ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ
Π‘ΡΡΠ°Π½ΠΈΡΠ° Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru