ΠΡΠ» ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΈ PgBouncer: ΠΊΠ°ΠΊΠΎΠΉ ΡΠ΅ΠΆΠΈΠΌ Π²ΡΠ±ΡΠ°ΡΡ ΠΈ ΡΠ΅ΠΌ ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅?
Π£ PostgreSQL ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ β ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΡΡΡΠ° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠΎ ΡΡΡΡΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ Π³ΠΈΠ³Π°Π±Π°ΠΉΡΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Π½Π° Π΄Π΅ΡΡΡΠΊΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΡΠ» ΡΠ΅ΡΠ°Π΅Ρ ΡΡΠΎ Π½Π° Π΄Π²ΡΡ
ΡΡΠΎΠ²Π½ΡΡ
: Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ (ΠΏΡΠ» Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°, ΠΆΠΈΠ²ΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅) ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΏΡΠ»Π΅Ρ (PgBouncer, ΠΎΠ΄ΠΈΠ½ Π½Π° Π²ΡΠ΅Ρ
). Π Π΅ΠΆΠΈΠΌΡ PgBouncer ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ ΡΠ΅ΠΌ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² ΠΏΡΠ». session β ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ ΡΠΎ Π²ΡΠ΅ΠΌ, Π½ΠΎ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ ΠΌΠ°Π»ΠΎ. transaction β ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ, Π΄Π°ΡΡΠΈΠΉ ΠΊΡΠ°ΡΠ½ΠΎΠ΅ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ; ΡΠ΅Π½ΠΎΠΉ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ΅ΡΡΠΈΠΎΠ½Π½ΡΠ΅ Π²Π΅ΡΠΈ Π»ΠΎΠΌΠ°ΡΡΡΡ: Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ, SET Π±Π΅Π· LOCAL, ΠΊΡΡΡΠΎΡΡ Π²Π½Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, LISTEN/NOTIFY, advisory-Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΠΎΠ²Π½Ρ ΡΠ΅ΡΡΠΈΠΈ. ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² transaction-ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Ρ PgBouncer 1.21 ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΡΠ½Π½ΠΎΠΌ max_prepared_statements. statement β ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΆΡΡΡΠΊΠΈΠΉ, Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.