ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ Π½Π° PostgreSQL β ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΡΠΌΠ΅Π½Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π΄Π°Π½Π½ΡΡ , Π° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π΄ΠΈΠΊΠ°Π»ΡΠ½ΠΎ ΡΠ»ΡΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡ Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. Π€Π°ΠΉΠ»ΠΎΠ²ΡΠ΅ Π±Π°Π·Ρ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠ²ΠΎΡ ΠΏΡΠΎΡΡΠΎΡΡ, ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΡΠ·ΠΊΠΈΠΌ ΠΌΠ΅ΡΡΠΎΠΌ ΠΏΡΠΈ ΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΌΠΎΠ² Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ. PostgreSQL ΠΊΠ°ΠΊ Π‘Π£ΠΠ enterprise-ΡΡΠΎΠ²Π½Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π±ΠΎΠ»ΡΡΠΈΡ Π½Π°Π³ΡΡΠ·ΠΎΠΊ ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ β ΡΡΠΎ Π½Π΅ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½Π°Ρ Π·Π°Π΄Π°ΡΠ°. ΠΠ½Π° ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ, ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΡ ΡΠ°Π·Π»ΠΈΡΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΠΌ ΠΈ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΠΎΠΉ Π‘Π£ΠΠ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ΅ΡΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈ ΡΠ°Π±ΠΎΡΡ 1Π‘ Ρ PostgreSQL. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ Π²Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π³ Π·Π° ΡΠ°Π³ΠΎΠΌ: ΠΎΡ ΠΎΡΠ΅Π½ΠΊΠΈ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° Π΄ΠΎ ΠΏΠΎΡΡΠΌΠΈΠ³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΄Π΅Π»ΠΈΠΌ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΠΎ ΡΠΏΡΡΠΊΠ°ΡΡ ΠΈΠ· Π²ΠΈΠ΄Ρ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ΅ΡΠ° PostgreSQL ΠΏΠΎΠ΄ Π½Π°Π³ΡΡΠ·ΠΊΡ 1Π‘ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ (ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ).
ΠΡΠ»ΠΈ Π²Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΡΠ΅ΡΠ΅ 1Π‘ Π½Π° ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠΈ Ρ 10+ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ, ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΠ΅ΡΡ Ρ Π·Π°Π²ΠΈΡΠ°Π½ΠΈΡΠΌΠΈ ΠΏΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈΠ»ΠΈ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ β ΡΡΠΎΡ Π³Π°ΠΉΠ΄ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠΈΠΏΠΈΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ PostgreSQL.
ΠΠΎΡΠ΅ΠΌΡ ΡΡΠΎΠΈΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ Π±Π°Π·Ρ 1Π‘ Π½Π° PostgreSQL
Π€Π°ΠΉΠ»ΠΎΠ²ΡΠ΅ Π±Π°Π·Ρ 1Π‘ (.1CD) ΡΠ΄ΠΎΠ±Π½Ρ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ
ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ ΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π½ΠΎ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ:
- π ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ: ΠΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅/Π·Π°ΠΏΠΈΡΡ Π² ΡΠ°ΠΉΠ» ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΡ ΠΏΡΠΈ ΡΠΎΡΡΠ΅ Π±Π°Π·Ρ. PostgreSQL ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡΡ, ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ.
- π ΠΠ°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ: ΠΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Π±Π°Π·Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠΎΡΠ΅ΡΠ΅ Π΄Π°Π½Π½ΡΡ . Π PostgreSQL Π΅ΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ, ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.
- π₯ ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ: Π ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π²ΡΠ΅ΠΉ Π±Π°Π·Ρ, Π° Π½Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ. ΠΡΠΎ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ ΠΏΡΠΈ 10+ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡ .
- π ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ: ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²Π½Π΅ΡΠ½ΠΈΡ
ΡΠΈΡΡΠ΅ΠΌ ΠΊ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΠ±Ρ
ΠΎΠ΄Π½ΡΡ
ΡΠ΅ΡΠ΅Π½ΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ΅Π·
COM-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅), ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ PostgreSQL ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ (ODBC,JDBC). - π ΠΠ½Π°Π»ΠΈΡΠΈΠΊΠ°: Π‘Π»ΠΎΠΆΠ½ΡΠ΅ ΠΎΡΡΠ΅ΡΡ ΠΈ Π°Π½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΊΡΠ°ΠΉΠ½Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. PostgreSQL ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ
CTE, ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ.
ΠΠΎ Π΄Π°Π½Π½ΡΠΌ ΡΠ΅ΡΡΠΎΠ² 1Π‘, ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ Π½Π° PostgreSQL ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΡΡ ΠΏΡΠΈΡΠΎΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π΄ΠΎ 300-500% ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΌΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ
(100+ ΠΠ). ΠΠ΄Π½Π°ΠΊΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΡΡΠ΅Π±ΡΠ΅Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, Π½ΠΎ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΎΠ² ΠΊ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² PostgreSQL Π½ΡΠΆΠ½ΠΎ Π²ΡΡΡΠ½ΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π°Π²ΡΠΎΠΎΡΠΈΡΡΠΊΡ (autovacuum), ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠ»ΠΈ Π²Π°ΡΠ° Π±Π°Π·Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΠΠΎΠ»Π½ΠΎΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡΠΈΠ»ΠΈΠΠ²ΠΎΠΈΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ), ΠΈΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. Π PostgreSQL Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ (bytea,tsvector), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ.
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΊ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ: ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠ΅Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ 1Π‘ ΠΊ PostgreSQL. ΠΠΎΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ:
- ΠΠ΅ΡΡΠΈΡ 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅: ΠΠΈΠ³ΡΠ°ΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ 8.3.10+. ΠΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ PostgreSQL.
- ΠΠ΅ΡΡΠΈΡ PostgreSQL: ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π²Π΅ΡΡΠΈΠΈ
9.6β16. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡPostgreSQL 14/15ΠΊΠ°ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠ΅. - ΠΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ:
- π₯οΈ CPU: ΠΠΈΠ½ΠΈΠΌΡΠΌ 4 ΡΠ΄ΡΠ° (ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ 8+ Π΄Π»Ρ Π±Π°Π· >50 ΠΠ).
- πΎ RAM: 8 ΠΠ + 1 ΠΠ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠ΅ 10 ΠΠ Π΄Π°Π½Π½ΡΡ .
- π Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅:
SSD NVMeΠ΄Π»Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΡ Π»ΠΎΠ³ΠΎΠ² (WAL) ΠΈSAS HDDΠ΄Π»Ρ Π΄Π°Π½Π½ΡΡ (ΠΏΡΠΈ ΠΎΠ±ΡΠ΅ΠΌΠ΅ >100 ΠΠ).
1Π‘:ΠΠΈΡΠ΅Π½Π·ΠΈΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΈΠ»ΠΈ 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ 8. ΠΠΠ Π).Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² Π±Π°Π·Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²:
| Π’ΠΈΠΏ ΠΎΠ±ΡΠ΅ΠΊΡΠ° 1Π‘ | ΠΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ | Π Π΅ΡΠ΅Π½ΠΈΠ΅ |
|---|---|---|
Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ (Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΠΠ½Π°ΡΠ΅Π½ΠΈΡ) |
Π ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅ Ρ ΡΠ°Π½ΡΡΡΡ ΠΊΠ°ΠΊ BLOB, Π² PostgreSQL ΠΌΠΎΠ³ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΠΈ | ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ bytea ΠΈΠ»ΠΈ large object |
| ΠΠΎΠ»Π½ΠΎΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ | Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ | ΠΠ΅ΡΠ΅Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ tsvector |
| ΠΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ | Π PostgreSQL Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΡ Π΅ΠΌΠ΅ | ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡΡ ΠΈΠ»ΠΈ ΡΡ Π΅ΠΌΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ |
| Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Ρ Π΄Π»ΠΈΠ½Π½ΡΠΌΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΠΌΠΈ | Π PostgreSQL ΡΠ°ΠΉΠΌΠ°ΡΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ | Π£Π²Π΅Π»ΠΈΡΠΈΡΡ lock_timeout ΠΈ deadlock_timeout |
ΠΠ΅ΡΠ΅Π΄ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠ΅ΠΉ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ Π½Π° ΠΊΠΎΠΏΠΈΠΈ ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π±Π°Π·Ρ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²ΡΡΠ²ΠΈΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ:
- π’ ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΠΌΠΈ (Π² PostgreSQL ΠΎΠ½ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΈΠ½Π°ΡΠ΅, ΡΠ΅ΠΌ Π°Π²ΡΠΎΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½Ρ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅).
- ποΈ Π₯ΡΠ°Π½ΠΈΠΌΡΠΌΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°ΠΌΠΈ (Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Ρ SQL-Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ).
- π Π Π΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ (Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅ Π΅Π΅ Π½Π΅Ρ, Π° Π² PostgreSQL Π½ΡΠΆΠ½ΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ).
βοΈ ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΊ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ
ΠΡΠ±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ: ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ Π½Π° PostgreSQL, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΈ ΠΏΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ. ΠΡΠ±ΠΎΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΎΠ±ΡΠ΅ΠΌΠ° Π΄Π°Π½Π½ΡΡ , Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΡΡΠΎΡ ΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
1. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ 1Π‘ (ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠΉ)
Π ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ 8.3.14+ Π΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π½Π° PostgreSQL. ΠΠ½ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠ΅ΡΠ΅Π· ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡ β ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ β ΠΡΠ³ΡΡΠ·ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ Π±Π°Π·Ρ Ρ Π²ΡΠ±ΠΎΡΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ° PostgreSQL.
ΠΠ»ΡΡΡ:
- β ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ (ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ 1Π‘).
- β Π‘ΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π²ΡΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ (ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ°, ΠΈΡΡΠΎΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ).
- β ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ Π±Π°Π·Ρ (ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π»ΠΎΡΡ Π½Π° 500+ ΠΠ).
ΠΠΈΠ½ΡΡΡ:
- β Π’ΡΠ΅Π±ΡΠ΅Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ°.
- β ΠΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°ΡΡΠΈΡΠ½ΠΎΠΉ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ (ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΡ Π±Π°Π·Π° ΡΠ΅Π»ΠΈΠΊΠΎΠΌ).
2. Π£ΡΠΈΠ»ΠΈΡΠ° chdbfl (Π΄Π»Ρ ΠΎΠΏΡΡΠ½ΡΡ
Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ²)
ΠΠΎΠ½ΡΠΎΠ»ΡΠ½Π°Ρ ΡΡΠΈΠ»ΠΈΡΠ° chdbfl.exe, Π²Ρ
ΠΎΠ΄ΡΡΠ°Ρ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ 1Π‘, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ Π² ΡΠΎΡΠΌΠ°Ρ PostgreSQL Π±Π΅Π· Π·Π°ΠΏΡΡΠΊΠ° 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅. ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
chdbfl.exe /F "C:\Bases\MyBase" /DumpIB "C:\Temp\dump.dt" /PostgreSQL
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π½ΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΡΠΈΠ»ΠΈΡΡ.
3. Π‘ΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Postgres Professional Migration Toolkit)
Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ:
- π ΠΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ (ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ ).
- π ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ Π»ΠΎΠ³ΠΎΠ² ΠΎΡΠΈΠ±ΠΎΠΊ.
- π οΈ ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π³Π΅ΠΎΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅Π½Π½ΡΡ ).
ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°ΡΡΠΎ ΠΏΠ»Π°ΡΠ½ΡΠ΅ ΠΈ ΡΡΠ΅Π±ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ.
| ΠΡΠΈΡΠ΅ΡΠΈΠΉ | Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ 1Π‘ | Π£ΡΠΈΠ»ΠΈΡΠ° chdbfl |
Π‘ΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ |
|---|---|---|---|
| Π‘ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ | Π‘ΡΠ΅Π΄Π½ΡΡ | ΠΡΡΠΎΠΊΠ°Ρ | ΠΠ°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° |
| ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π±ΠΎΠ»ΡΡΠΈΡ Π±Π°Π· (>100 ΠΠ) | ΠΠ° | ΠΠ° (Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΡ) | ΠΠ° |
| Π’ΡΠ΅Π±ΡΠ΅Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ 1Π‘ | ΠΠ° | ΠΠ΅Ρ (Π½ΠΎ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΡΠ°ΠΉΠ» Π±Π°Π·Ρ) | Π§Π°ΡΡΠΈΡΠ½ΠΎ (Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°) |
| Π‘ΡΠΎΠΈΠΌΠΎΡΡΡ | ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΠΎ | ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΠΎ | ΠΡ 50 000 β½ |
ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠ»ΡΡΠ°Π΅Π² ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ 1Π‘, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΡΠ»Π°ΠΆΠ΅Π½ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ Π±Π΅Π· ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ°Π±ΠΎΡΡ, ΡΡΠΎΠΈΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠ΅ΡΠ΅Π΄ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠ΅ΠΉ ΡΠΌΠ΅Π½ΡΡΠΈΡΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡΠ΅. ΠΡΠΎ ΡΡΠΊΠΎΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈ ΡΠ½ΠΈΠ·ΠΈΡ ΡΠΈΡΠΊ ΠΎΡΠΈΠ±ΠΎΠΊ.
ΠΠΎΡΠ°Π³ΠΎΠ²Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΡ Π±Π°Π·Ρ Π½Π° PostgreSQL
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π΄Π΅ΡΠ°Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π΄Π»Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° 1Π‘. ΠΠ΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° 5 ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΡΠ°ΠΏΠΎΠ²:
ΠΡΠ°ΠΏ 1: Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° PostgreSQL
- Π‘ΠΊΠ°ΡΠ°ΠΉΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² PostgreSQL Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° (Π²Π΅ΡΡΠΈΡ
14/15). - ΠΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ
UTF-8ΠΈ Π»ΠΎΠΊΠ°Π»ΡRussian_Russia(Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΠ΅ΠΉ). - Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π»Ρ 1Π‘:
CREATE USER usr1c WITH PASSWORD 'YourPassword';CREATE DATABASE db1c OWNER usr1c ENCODING 'UTF8' LC_COLLATE 'ru_RU.UTF-8' LC_CTYPE 'ru_RU.UTF-8';
- ΠΠ°ΡΡΡΠΎΠΉΡΠ΅
pg_hba.confΠ΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΏΠΎ ΡΠ΅ΡΠΈ (Π΅ΡΠ»ΠΈ ΡΠ΅ΡΠ²Π΅Ρ PostgreSQL ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° 1Π‘):host db1c usr1c 192.168.1.0/24 md5
ΠΡΠ°ΠΏ 2: ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ 1Π‘
- ΠΠ°ΠΊΡΠΎΠΉΡΠ΅ Π²ΡΠ΅ ΡΠ΅Π°Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π² Π±Π°Π·Π΅.
- ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡ (ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ β Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅). - ΠΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ: Π°ΡΡ
ΠΈΠ²ΠΈΡΡΠΉΡΠ΅ Π±Π°Π·Ρ Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ (ΡΠ΅ΡΠ΅Π·
ΠΡΠ³ΡΡΠ·ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ Π±Π°Π·ΡΠ² ΡΠ°ΠΉΠ».dt).
ΠΡΠ°ΠΏ 3: ΠΠ°ΠΏΡΡΠΊ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ
- Π ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡΠ΅ Π²ΡΠ±Π΅ΡΠΈΡΠ΅
ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ β ΠΡΠ³ΡΡΠ·ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ Π±Π°Π·Ρ. - Π£ΠΊΠ°ΠΆΠΈΡΠ΅ ΡΠΎΡΠΌΠ°Ρ
PostgreSQLΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ:- Π‘Π΅ΡΠ²Π΅Ρ:
localhostΠΈΠ»ΠΈ IP-Π°Π΄ΡΠ΅Ρ. - ΠΠΎΡΡ:
5432(ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ). - ΠΠΌΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
:
db1c(ΡΠΎΠ·Π΄Π°Π½Π½Π°Ρ ΡΠ°Π½Π΅Π΅). - ΠΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ:
usr1c. - ΠΠ°ΡΠΎΠ»Ρ: ΡΠΊΠ°Π·Π°ΡΡ ΡΠΎΡ, ΡΡΠΎ Π·Π°Π΄Π°Π²Π°Π»ΠΈ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
- Π‘Π΅ΡΠ²Π΅Ρ:
ΠΡΠ³ΡΡΠ·ΠΈΡΡ ΠΈ Π΄ΠΎΠΆΠ΄ΠΈΡΠ΅ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ. ΠΡΠ΅ΠΌΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΎΠ±ΡΠ΅ΠΌΠ° Π΄Π°Π½Π½ΡΡ
(ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 1 ΠΠ = 5β10 ΠΌΠΈΠ½ΡΡ).ΠΡΠ°ΠΏ 4: ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ²
- ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ΡΡ ΠΊ Π±Π°Π·Π΅ ΡΠ΅ΡΠ΅Π·
psqlΠΈΠ»ΠΈ pgAdmin ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡ:\c db1c\dt
ΠΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Ρ ΠΏΡΠ΅ΡΠΈΠΊΡΠ°ΠΌΠΈ
_1s(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,_1sjournals,_1sdocuments). - ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡΠ° ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ΡΡ ΠΊ Π½ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅ ΡΠ΅ΡΠ΅Π·
Π€Π°ΠΉΠ» β ΠΡΠΊΡΡΡΡ β ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ Π±Π°Π·Ρ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡ, Π²ΡΠ±ΡΠ°Π² ΡΠΈΠΏPostgreSQL. - ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ΅ΡΡΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ (ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΡΠ΅ΡΠ°) Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ .
- ΠΠ΅ΡΠ΅Π΄ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠ΅ΠΉ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΡ Π±Π°Π·Ρ Π²
UTF-8ΡΠ΅ΡΠ΅Π·ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡ β ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ β ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅. - ΠΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠ° ΡΠΆΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ
iconvΠ΄Π»Ρ ΡΡΡΠ½ΠΎΠΉ ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΡ ΠΏΠΎΠ»Π΅ΠΉ:iconv -f CP1251 -t UTF-8 input.txt > output.txt - Π£Π²Π΅Π»ΠΈΡΡΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
work_mem(Π΄ΠΎ 1 ΠΠ) ΠΈmaintenance_work_mem(Π΄ΠΎ 2 ΠΠ) Π²postgresql.conf. - Π Π°Π·Π±Π΅ΠΉΡΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π½Π° ΡΠ°ΡΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠΈΡΠ΅ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΈ, Π·Π°ΡΠ΅ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ).
- ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅
ANALYZEΠ΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ:VACUUM ANALYZE; - ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² Π΄Π»Ρ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΏΠΎΠ»Π΅ΠΉ (Π² 1Π‘ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΡΠ½Π°Ρ Π΄ΠΎΠ½Π°ΡΡΡΠΎΠΉΠΊΠ°).
- ΠΠ°ΡΡΡΠΎΠΉΡΠ΅
autovacuumΠ΄Π»Ρ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠΉ ΠΎΡΠΈΡΡΠΊΠΈ:autovacuum = onautovacuum_vacuum_scale_factor = 0.05
autovacuum_analyze_scale_factor = 0.02
- Π£Π²Π΅Π»ΠΈΡΡΡΠ΅
lock_timeout(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎ 30 ΡΠ΅ΠΊΡΠ½Π΄):SET lock_timeout = '30s'; - Π Π°Π·Π±Π΅ΠΉΡΠ΅ Π΄Π»ΠΈΠ½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² 1Π‘ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅.
- ΠΡΠ΄Π°ΠΉΡΠ΅ Π²ΡΠ΅ ΠΏΡΠ°Π²Π° Π½Π° ΡΡ
Π΅ΠΌΡ
_1s:GRANT ALL PRIVILEGES ON SCHEMA _1s TO usr1c; - ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΏΡΠ°Π²Π° Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ:
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA _1s TO usr1c; - π
pg_stat_activityβ Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ. - π
pg_stat_statementsβ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² (ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ). - π
EXPLAIN ANALYZEβ Π°Π½Π°Π»ΠΈΠ· ΠΏΠ»Π°Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ².
ΠΡΠ°ΠΏ 5: ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ PostgreSQL ΠΏΠΎΠ΄ 1Π‘
ΠΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ PostgreSQL Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ 1Π‘:
# Π ΡΠ°ΠΉΠ»Π΅ postgresql.conf:
shared_buffers = 4GB # 25% ΠΎΡ ΠΎΠ±ΡΠ΅ΠΉ RAM
effective_cache_size = 12GB # 75% ΠΎΡ ΠΎΠ±ΡΠ΅ΠΉ RAM
maintenance_work_mem = 1GB # ΠΠ»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ VACUUM ΠΈ CREATE INDEX
work_mem = 64MB # ΠΠ»Ρ ΡΠ»ΠΎΠΆΠ½ΡΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ²
random_page_cost = 1.1 # ΠΠ»Ρ SSD-Π΄ΠΈΡΠΊΠΎΠ²
max_connections = 100 # ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ * 2
Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ Π΅ΡΠ»ΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΠΏΡΠ΅ΡΠ²Π°Π»Π°ΡΡ?
ΠΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠ΅ΡΠ²Π°Π»ΡΡ Π½Π° ΡΡΠ°ΠΏΠ΅ Π²ΡΠ³ΡΡΠ·ΠΊΠΈ, ΠΏΠΎΠ²ΡΠΎΡΠΈΡΠ΅ ΠΏΠΎΠΏΡΡΠΊΡ. ΠΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ Π² PostgreSQL, ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π»ΠΎΠ³ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° (/var/log/postgresql/postgresql-15-main.log) Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ ΡΠΈΠΏΠ° OUT OF MEMORY ΠΈΠ»ΠΈ DISK FULL. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ²Π΅Π»ΠΈΡΡΡΠ΅ work_mem ΠΈΠ»ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΠ΅ ΠΌΠ΅ΡΡΠΎ Π½Π° Π΄ΠΈΡΠΊΠ΅.
Π’ΠΈΠΏΠΈΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΈ ΠΊΠ°ΠΊ ΠΈΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ
ΠΠ°ΠΆΠ΅ ΠΏΡΠΈ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ. ΠΠΎΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ:
1. ΠΡΠΈΠ±ΠΊΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ERROR: invalid byte sequence for encoding "UTF8")
ΠΡΠΈΡΠΈΠ½Π°: Π ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ Windows-1251, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΡΡΡΡΡ Π² UTF-8.
Π Π΅ΡΠ΅Π½ΠΈΠ΅:
2. ΠΠ΅Ρ
Π²Π°ΡΠΊΠ° ΠΏΠ°ΠΌΡΡΠΈ (out of memory)
ΠΡΠΈΡΠΈΠ½Π°: ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ PostgreSQL Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΌΠ°Π»ΠΎ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΠ΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΠΏΠ° CREATE INDEX.
Π Π΅ΡΠ΅Π½ΠΈΠ΅:
3. ΠΠ΅Π΄Π»Π΅Π½Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎΡΠ»Π΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ
ΠΡΠΈΡΠΈΠ½Π°: ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΈΠ»ΠΈ Π½Π΅ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ PostgreSQL.
Π Π΅ΡΠ΅Π½ΠΈΠ΅:
4. ΠΡΠΈΠ±ΠΊΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ (deadlock detected)
ΠΡΠΈΡΠΈΠ½Π°: Π PostgreSQL ΡΠ°ΠΉΠΌΠ°ΡΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΡΡΡΠΎΠΆΠ΅, ΡΠ΅ΠΌ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅.
Π Π΅ΡΠ΅Π½ΠΈΠ΅:
5. ΠΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ Π΄ΠΎΡΡΡΠΏΠ°
ΠΡΠΈΡΠΈΠ½Π°: ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ PostgreSQL Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠ°Π² Π½Π° ΡΡ Π΅ΠΌΡ ΠΈΠ»ΠΈ ΡΠ°Π±Π»ΠΈΡΡ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅:
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π² 1Π‘ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΎΡΡΠ΅ΡΠ°Ρ ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°Ρ , ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π½Π°Π»ΠΈΡΠΈΠ΅NULL-Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² ΠΊΡΠΈΡΠΈΡΠ½ΡΡ ΠΏΠΎΠ»ΡΡ . Π ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅ 1Π‘ ΠΈΠ½ΠΎΠ³Π΄Π° Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡNULLΡΠ°ΠΌ, Π³Π΄Π΅ Π² PostgreSQL ΡΡΠΎ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΡ ΠΊΠ»ΡΡΠ°Ρ ). ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π·Π°ΠΏΡΠΎΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ°ΠΊΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ:SELECT * FROM _1sdocuments WHERE id IS NULL;
Π‘Π°ΠΌΠ°Ρ ΡΠ°ΡΡΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΡΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ β ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ°. ΠΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π° ΠΊΠΎΠΏΠΈΠΈ Π±Π°Π·Ρ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ!
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ PostgreSQL Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ 1Π‘
ΠΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ PostgreSQL Π΄Π»Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠΎΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ:
1. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ PostgreSQL ΠΊΠΎΠ½ΡΠ΅ΡΠ²Π°ΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ΅ΡΡΡΡΡ. ΠΠ»Ρ Π±Π°Π· 1Π‘ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ (Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Ρ 32 ΠΠ RAM):
# postgresql.conf
shared_buffers = 8GB # 25% ΠΎΡ RAM
effective_cache_size = 24GB # 75% ΠΎΡ RAM
work_mem = 16MB # ΠΠ»Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΎΠΊ ΠΈ Ρ
ΡΡ-ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ
maintenance_work_mem = 2GB # ΠΠ»Ρ VACUUM ΠΈ CREATE INDEX
max_worker_processes = 8 # ΠΠ»Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ²
2. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π·Π°ΠΏΠΈΡΠΈ Π½Π° Π΄ΠΈΡΠΊ (WAL)
1Π‘ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Π°ΠΆΠ½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π»ΠΎΠ³Π°ΠΌΠΈ (Write-Ahead Log):
wal_level = replica # ΠΠ»Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ (Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½Π°)
wal_buffers = 16MB # ΠΡΡΠ΅Ρ Π΄Π»Ρ WAL
checkpoint_completion_target = 0.9 # ΠΠ°Π»Π°Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡΡ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ
max_wal_size = 4GB # ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° WAL
3. ΠΠ½Π΄Π΅ΠΊΡΡ ΠΈ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°
PostgreSQL ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ Π°Π²ΡΠΎΠΎΡΠΈΡΡΠΊΡ:
autovacuum = on
autovacuum_vacuum_threshold = 50 # ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅Π΄ VACUUM
autovacuum_analyze_threshold = 50 # ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅Π΄ ANALYZE
autovacuum_vacuum_scale_factor = 0.05
autovacuum_analyze_scale_factor = 0.02
ΠΠ»Ρ ΠΊΡΡΠΏΠ½ΡΡ
ΡΠ°Π±Π»ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, _1sjournals) ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΈΡΠ½ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ:
CREATE INDEX idx_journals_recent ON _1sjournals (date)
WHERE date > NOW() - INTERVAL '1 year';
4. ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΈ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ°
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ:
ΠΡΠΈΠΌΠ΅Ρ Π·Π°ΠΏΡΠΎΡΠ° Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π΄ΠΎΠ»Π³ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ:
SELECT pid, now() - query_start AS duration, query
FROM pg_stat_activity
WHERE state = 'active' AND query NOT LIKE '%pg_stat_activity%'
ORDER BY duration DESC;
5. Π Π΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ pg_dump ΠΈΠ»ΠΈ pg_basebackup:
# ΠΠΆΠ΅Π΄Π½Π΅Π²Π½ΡΠΉ Π±ΡΠΊΠ°ΠΏ (ΠΏΠΎΠ»Π½ΡΠΉ)
pg_dump -U usr1c -F c -f /backup/db1c_$(date +%Y%m%d).dump db1c
ΠΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ Π±ΡΠΊΠ°ΠΏ (WAL-Π°ΡΡ
ΠΈΠ²Π°ΡΠΈΡ)
wal_level = archive
archive_mode = on
archive_command = 'test ! -f /backup/wal/%f && cp %p /backup/wal/%f'
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠ»ΠΈ Π² Π²Π°ΡΠ΅ΠΉ Π±Π°Π·Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡΠΠ½Π΅ΡΠ½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈΡ ΠΏΡΡΠΌΡΠΌΠΈ SQL-Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ, ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ PostgreSQL. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ½ΠΊΡΠΈΡCONVERTΠ² 1Π‘ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΠ½Π°ΡΠ΅, ΡΠ΅ΠΌ Π² PostgreSQL, Π³Π΄Π΅ Π΄Π»Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΠΈ ΡΠΈΠΏΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡCASTΠΈΠ»ΠΈ::.
ΠΠ±ΡΠ°ΡΠ½Π°Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ: ΠΊΠ°ΠΊ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅, Π΅ΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΊ
ΠΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° Π½Π° PostgreSQL Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈΠ»ΠΈ Π½Π΅Ρ Π²Π°ΡΠΊΠ° ΡΠ΅ΡΡΡΡΠΎΠ²), ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΎΡΠΊΠ°Ρ ΠΊ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅. ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ:
Π¨Π°Π³ 1: ΠΠΊΡΠΏΠΎΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· PostgreSQL
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ pg_dump Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄Π°ΠΌΠΏΠ°:
pg_dump -U usr1c -F c -f /backup/db1c_dump.dump db1c
Π¨Π°Π³ 2: ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°ΠΌΠΏΠ° Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ ΡΠΎΡΠΌΠ°Ρ
ΠΠ»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ chdbfl:
chdbfl.exe /F "C:\Bases\MyBase_Rollback" /RestoreIB "C:\Backup\db1c_dump.dump" /File
Π¨Π°Π³ 3: ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ
ΠΠΎΡΠ»Π΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ:
- ΠΠ°ΠΏΡΡΡΠΈΡΠ΅
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡΠ΅. - ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΊΡΠΈΡΠΈΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ (ΠΎΡΡΠ°ΡΠΊΠΈ, Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄).
- Π‘ΡΠ°Π²Π½ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΡΡΠΌΠΌΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ°Π±Π»ΠΈΡ Π΄ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ.
ΠΠ°ΠΆΠ½ΠΎ: ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ΅ΠΌ ΠΏΡΡΠΌΠ°Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ
ΠΈ ΡΡΡΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡ. Π’Π°ΠΊΠΆΠ΅ ΡΡΠΈΡΡΠ²Π°ΠΉΡΠ΅, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΠΎΠ»Π½ΠΎΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ) ΠΌΠΎΠ³ΡΡ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ.
ΠΡΠ΅Π³Π΄Π° Π΄Π΅ΡΠΆΠΈΡΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ Π΄ΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π±ΡΡΡΡΠΎ ΠΎΡΠΊΠ°ΡΠΈΡΡΡΡ, Π΅ΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠΉΠ΄Π΅Ρ Π½Π΅ ΡΠ°ΠΊ.
FAQ: Π§Π°ΡΡΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΡ 1Π‘ Π½Π° PostgreSQL
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ Π±Π°Π·Ρ Π½Π° PostgreSQL Π±Π΅Π· ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ?
ΠΠ΅Ρ, ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ 1Π‘ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠΊΡΠΊΠ»ΡΠ·ΠΈΠ²Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π±Π°Π·Π΅. ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ:
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ Π² Π½Π΅ΡΠ°Π±ΠΎΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ.
- ΠΠ΅ΡΠ΅Π½Π΅ΡΠΈΡΠ΅ ΠΊΠΎΠΏΠΈΡ Π½Π° PostgreSQL.
- Π‘ΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π° ΠΏΡΠΎΡΠ΅Π΄ΡΠΈΠΉ Π΄Π΅Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
1Π‘:ΠΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡΠΈΠ»ΠΈ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ².
ΠΠ»Ρ ΠΊΡΡΠΏΠ½ΡΡ Π±Π°Π· (>100 ΠΠ) ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠ΅ΡΠ΅Π· <