Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΠΌ Π΄Π° сС Π·Π°ΠΏΠΎΠ·Π½Π°Π΅Ρ‚Π΅ с Ρ€Π°Π·ΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ°Ρ‚Π° Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π° Π½Π° АлСксСй ЛСсовски ΠΎΡ‚ Data Egret "Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL"

Π’ Ρ‚ΠΎΠ·ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ АлСксСй ЛСсовски Ρ‰Π΅ Ρ€Π°Π·ΠΊΠ°ΠΆΠ΅ Π·Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈΡ‚Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° статистиката Π½Π° PostgreSQL, ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°Ρ‚ Ρ‚Π΅ ΠΈ Π·Π°Ρ‰ΠΎ трябва Π΄Π° ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π°Ρ‚ Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°; Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊΠ²ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π΄Π° Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, ΠΊΠ°ΠΊ Π΄Π° Π³ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π³ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€Π°Ρ‚Π΅. Π”ΠΎΠΊΠ»Π°Π΄ΡŠΡ‚ Ρ‰Π΅ бъдС ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π·Π° администратори Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, систСмни администратори ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ, интСрСсуващи сС ΠΎΡ‚ Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с Postgres.

ΠŸΡƒΡΠ½Π΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅ΠΎΡ‚ΠΎ

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

Казвам сС АлСксСй ЛСсовски, прСдставлявам компанията Data Egret.

Няколко Π΄ΡƒΠΌΠΈ Π·Π° ΠΌΠ΅Π½. Π—Π°ΠΏΠΎΡ‡Π½Π°Ρ… ΠΏΡ€Π΅Π΄ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΊΠ°Ρ‚ΠΎ систСмСн администратор.

Администрирал съм Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Linux систСми, Π·Π°Π½ΠΈΠΌΠ°Π²Π°Ρ… сС с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π½Π΅Ρ‰Π°, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с Linux, Ρ‚.Π΅. виртуализация, ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³, Ρ€Π°Π±ΠΎΡ‚Π° с прокси ΠΈ Ρ‚.Π½. Но Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ… Π΄Π° сС Π·Π°Π½ΠΈΠΌΠ°Π²Π°ΠΌ ΠΏΠΎΠ²Π΅Ρ‡Π΅ с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, PostgreSQL. Π₯арСса ΠΌΠΈ ΠΌΠ½ΠΎΠ³ΠΎ. И с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ сС посвСтих Π½Π° PostgreSQL основната част ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π½ΠΎΡ‚ΠΎ си Π²Ρ€Π΅ΠΌΠ΅. ΠŸΠΎΡΡ‚Π΅ΠΏΠ΅Π½Π½ΠΎ станах PostgreSQL DBA.

ΠŸΡ€Π΅Π· цялата си ΠΊΠ°Ρ€ΠΈΠ΅Ρ€Π° Π²ΠΈΠ½Π°Π³ΠΈ съм сС интСрСсувал ΠΎΡ‚ Ρ‚Π΅ΠΌΠΈ ΠΊΠ°Ρ‚ΠΎ статистика, ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³, ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° тСлСмСтрия. ΠšΠΎΠ³Π°Ρ‚ΠΎ бях систСмСн администратор, Ρ€Π°Π±ΠΎΡ‚ΠΈΡ… ΠΏΠ»ΡŠΡ‚Π½ΠΎ със Zabbix. Написах малък Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ скриптовС ΠΊΠ°ΠΊ zabbix-extensions. Π’ΠΎΠΉ бСшС доста популярСн ΠΏΠΎ ΠΎΠ½ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅. Π‘ Π½Π΅Π³ΠΎ моТСшС Π΄Π° сС Π½Π°Π±Π»ΡŽΠ΄Π°Π²Π°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π²Π°ΠΆΠ½ΠΈ аспСкти, Π½Π΅ само Π½Π° Linux, Π½ΠΎ ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ.

Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° сС Π·Π°Π½ΠΈΠΌΠ°Π²Π°ΠΌ с PostgreSQL. Пиша Π½Π΅Ρ‰ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява Ρ€Π°Π±ΠΎΡ‚Π° с PostgreSQL статистика. Π’ΠΎ сС Π½Π°Ρ€ΠΈΡ‡Π° pgCenter (статия Π½Π° Ρ…Π°Π±Ρ€Π° β€” ΠŸΠΎΡΡ‚Π³Ρ€Π΅ΡΠΎΠ²Π° статистика Π±Π΅Π· Π½Π΅Ρ€Π²ΠΈ ΠΈ Π½Π°ΠΏΡ€Π΅ΠΆΠ΅Π½ΠΈΠ΅).

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

НСвСличко въвСдСниС. Какви ситуации ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π²ΡŠΠ·Π½ΠΈΠΊΠ½Π°Ρ‚ ΠΏΡ€ΠΈ Π½Π°ΡˆΠΈΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ? ΠŸΡ€ΠΎΠΈΠ·Ρ‚ΠΈΡ‡Π° някакъв ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚, ΡΠ²ΡŠΡ€Π·Π°Π½ с Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ. И ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π²Π΅Ρ‡Π΅ Π΅ Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²Π΅Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, ΡˆΠ΅Ρ„ΡŠΡ‚ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π° ΠΈΠ»ΠΈ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° ΠΊΠ°Π·Π²Π°: Β«ΠŸΡ€ΠΈΡΡ‚Π΅Π»ΠΈ, трябва Π΄Π° слСдим Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ сС Π΅ случило Π½Π΅Ρ‰ΠΎ лошо ΠΈ трябва Π΄Π° ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ситуации Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅Β». И Ρ‚ΡƒΠΊ Π·Π°ΠΏΠΎΡ‡Π²Π° интСрСсСн процСс Π½Π° ΠΈΠ·Π±ΠΎΡ€ Π½Π° систСма Π·Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈΠ»ΠΈ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€Π°Π½Π΅ Π½Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰Π° Ρ‚Π°ΠΊΠ°Π²Π°, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° слСдим Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ – PostgreSQL, MySQL ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ. ΠšΠΎΠ»Π΅Π³ΠΈΡ‚Π΅ Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ Π΄Π° ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚: Β«Π§ΡƒΠ²Π°Π» съм, Ρ‡Π΅ ΠΈΠΌΠ° Ρ‚Π°ΠΊΠ°Π²Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ. НСка я ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅Β». ΠšΠΎΠ»Π΅Π³ΠΈΡ‚Π΅ Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ Π΄Π° спорят ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρƒ си. Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка ΠΈΠ·Π±ΠΈΡ€Π°ΠΌΠ΅ някаква Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, Π½ΠΎ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΡŠΡ‚ Π½Π° PostgreSQL Π² нСя Π΅ прСдставСн сравнитСлно слабо ΠΈ Π²ΠΈΠ½Π°Π³ΠΈ трябва Π΄Π° ΠΏΡ€Π°Π²ΠΈΠΌ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ настройки. Π’Π·ΠΈΠΌΠ°ΠΌΠ΅ някакви Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΎΡ‚ GitHub, ΠΊΠ»ΠΎΠ½ΠΈΡ€Π°ΠΌΠ΅ Π³ΠΈ, Π°Π΄Π°ΠΏΡ‚ΠΈΡ€Π°ΠΌΠ΅ скриптовС, ΠΏΡ€Π°Π²ΠΈΠΌ настройки. Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка Ρ‚ΠΎΠ²Π° сС ΠΏΡ€Π΅Π²Ρ€ΡŠΡ‰Π° Π² Ρ€ΡŠΡ‡Π΅Π½ Ρ‚Ρ€ΡƒΠ΄.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

Π—Π°Ρ‚ΠΎΠ²Π° Π² Ρ‚Π°Π·ΠΈ прСзСнтация Ρ‰Π΅ сС ΠΎΠΏΠΈΡ‚Π°ΠΌ Π΄Π° Π²ΠΈ Π΄Π°ΠΌ знания ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·Π±ΠΈΡ€Π°Ρ‚Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π΅ само Π·Π° PostgreSQL, Π½ΠΎ ΠΈ Π·Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π²ΡŠΠΎΠ±Ρ‰Π΅. И Π΄Π° прСдоставя знания, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ Π²ΠΈ позволят Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈΡ‚Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° си, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ‚ΠΎΠΉ Π΄Π° бъдС ΠΏΠΎΠ»Π΅Π·Π΅Π½, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° слСдитС Π±Π°Π·Π°Ρ‚Π° си Π΄Π°Π½Π½ΠΈ с ΠΏΠΎΠ»Π·Π° ΠΈ Π½Π°Π²Ρ€Π΅ΠΌΠ΅ Π΄Π° ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°Π²Π°Ρ‚Π΅ Π·Π° прСдстоящи ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС появят.

И ΠΈΠ΄Π΅ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Π² Ρ‚Π°Π·ΠΈ прСзСнтация, ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС Π°Π΄Π°ΠΏΡ‚ΠΈΡ€Π°Ρ‚ пряко към всяка Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, нСзависимо Π΄Π°Π»ΠΈ става Π²ΡŠΠΏΡ€ΠΎΡ Π·Π° Π‘Π£Π‘Π” ΠΈΠ»ΠΈ noSQL. Π—Π°Ρ‚ΠΎΠ²Π° Ρ‚ΡƒΠΊ Π½Π΅ става Π²ΡŠΠΏΡ€ΠΎΡ само Π·Π° PostgreSQL, Π° Ρ‰Π΅ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π΅Ρ†Π΅ΠΏΡ‚ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Ρ‚ΠΎΠ²Π° Π² PostgreSQL. Π©Π΅ ΠΈΠΌΠ° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° запитвания, ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ Π² PostgreSQL Π·Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³. И Π°ΠΊΠΎ Π²Π°ΡˆΠ°Ρ‚Π° Π‘Π£Π‘Π” ΠΈΠΌΠ° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π΅Ρ‰Π°, ΠΊΠΎΠΈΡ‚ΠΎ позволяват Π΄Π° сС Π²ΠΌΡŠΠΊΠ½Π°Ρ‚ Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΈ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€Π°Ρ‚Π΅ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅, ΠΈ Ρ‰Π΅ Π΅ Π΄ΠΎΠ±Ρ€Π΅.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовскиВ прСзСнтацията няма Π΄Π°
Ρ€Π°Π·ΠΊΠ°Π·Π²Π°ΠΌ Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ Π΄Π° доставятС ΠΈ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ. Няма Π΄Π° говоря Π½ΠΈΡ‰ΠΎ Π·Π° пост-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ тяхното прСдоставянС Π½Π° потрСбитСля. И няма Π΄Π° говоря Π½ΠΈΡ‰ΠΎ Π·Π° Π°Π»Π΅Ρ€Ρ‚ΠΈ.
Но Π² Ρ…ΠΎΠ΄Π° Π½Π° повСствованиСто Ρ‰Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΡΠΊΡ€ΠΈΠΉΠ½ΡˆΠΎΡ‚ΠΎΠ²Π΅ Π½Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΈ, ΠΊΠ°Ρ‚ΠΎ нямам Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ Π΄Π° ΠΊΡ€ΠΈΡ‚ΠΈΠΊΡƒΠ²Π°ΠΌ. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, Ρ‰Π΅ сС ΠΎΠΏΠΈΡ‚Π°ΠΌ Π΄Π° Π½Π΅ Π½Π°Π·ΠΎΠ²Π°Π²Π°ΠΌ ΠΌΠ°Ρ€ΠΊΠΈ, Π·Π° Π΄Π° Π½Π΅ създавам Ρ€Π΅ΠΊΠ»Π°ΠΌΠ° ΠΈΠ»ΠΈ Π°Π½Ρ‚ΠΈΡ€Π΅ΠΊΠ»Π°ΠΌΠ° Π½Π° Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ всички съвпадСния са случайни ΠΈ остават Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° фантазия.
Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски
ΠŸΡŠΡ€Π²ΠΎ, Π΄Π° сС Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³. ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΡŠΡ‚ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ΅Π½ инструмСнт, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅. Всички Π³ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΡŠΡ‚ Π½Π΅ Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ с бизнСс ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈ Π½Π΅ влияС Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π½Π° ΠΏΠ΅Ρ‡Π°Π»Π±Π°Ρ‚Π° Π½Π° компанията, ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΈΠ½Π°Π³ΠΈ ΠΌΡƒ сС отдСля Π²Ρ€Π΅ΠΌΠ΅ ΠΏΠΎ ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π΅Π½ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ. Ако ΠΈΠΌΠ°ΠΌΠ΅ Π²Ρ€Π΅ΠΌΠ΅, сС Π·Π°Π½ΠΈΠΌΠ°Π²Π°ΠΌΠ΅ с ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³, Π°ΠΊΠΎ няма Π²Ρ€Π΅ΠΌΠ΅, Π΄ΠΎΠ±Ρ€Π΅, Ρ‰Π΅ Π³ΠΎ поставим Π² Π±Π΅ΠΊΠ»ΠΎΠ³ ΠΈ някой Π΄Π΅Π½ Ρ‰Π΅ сС Π²ΡŠΡ€Π½Π΅ΠΌ Π½Π° Ρ‚Π΅Π·ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ.

Π—Π°Ρ‚ΠΎΠ²Π° ΠΎΡ‚ Π½Π°ΡˆΠ°Ρ‚Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ посСщавамС ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ, ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΡŠΡ‚ чСсто Π½Π΅ Π΅ Π΄ΠΎΠ²ΡŠΡ€ΡˆΠ΅Π½ ΠΈ Π½Π΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° интСрСсни Π½Π΅Ρ‰Π°, ΠΊΠΎΠΈΡ‚ΠΎ Π΄Π° Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ‚ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ с Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ. ΠŸΠΎΡ€Π°Π΄ΠΈ Ρ‚ΠΎΠ²Π°, ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΡŠΡ‚ Π²ΠΈΠ½Π°Π³ΠΈ трябва Π΄Π° бъдС Π΄ΠΎΡ€Π°Π·Π²ΠΈΡ‚.

Π‘Π°Π·ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ са слоТни Π½Π΅Ρ‰Π°, ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΡ‰ΠΎ трябва Π΄Π° сС мониторят, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π±Π°Π·ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ са Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π½Π° информация. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡΡ‚Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½Π° Π·Π° компанията ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π·Π°Π³ΡƒΠ±ΠΈ. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅, Π±Π°Π·ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ са ΠΌΠ½ΠΎΠ³ΠΎ слоТни части ΠΎΡ‚ софтуСр. Π’Π΅ сС ΡΡŠΡΡ‚ΠΎΡΡ‚ ΠΎΡ‚ голямо количСство ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ. И ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ трябва Π΄Π° сС мониторят.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй Π›Π΅ΡΠΎΠ²ΡΠΊΠΈΠšΠΎΠ³Π°Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π·Π° PostgreSQL, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³ΠΎ прСдставим ΠΊΠ°Ρ‚ΠΎ схСма, която сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ. Π’Π΅Π·ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ взаимодСйстват ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρƒ си. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π² PostgreSQL ΠΈΠΌΠ° Ρ‚. Π½Π°Ρ€. подсистСма Stats Collector, която позволява ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° статистика Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Ρ‚Π΅Π·ΠΈ подсистСми ΠΈ прСдоставя интСрфСйс Π½Π° администратора ΠΈΠ»ΠΈ потрСбитСля, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€Π΅Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°Π·ΠΈ статистика.

Π’Π°Π·ΠΈ статистика Π΅ прСдставСна ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΈΠ·Π³Π»Π΅Π΄ΠΈ (view). Π’Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π½Π°Ρ€Π΅Ρ‡Π΅Π½ΠΈ ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ. ВоСст, с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ psql ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ΅Ρ‚Π΅ с Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ сСлСкт Π½Π° Ρ‚Π΅Π·ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΈΠ·Π³Π»Π΅Π΄ΠΈ ΠΈ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ Ρ†ΠΈΡ„Ρ€ΠΈ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° подсистСмитС PostgreSQL.

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Ρ‚Π΅Π·ΠΈ Ρ†ΠΈΡ„Ρ€ΠΈ Π² Π»ΡŽΠ±ΠΈΠΌΠ°Ρ‚Π° си ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠ²Π° систСма, Π΄Π° нарисуватС Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π΄ΡŠΠ»Π³ΠΎΡΡ€ΠΎΡ‡Π½Π° Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ°.

Но Π² Ρ‚ΠΎΠ·ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ няма Π΄Π° Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌ всичкитС Ρ‚Π΅Π·ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΡ‚Π½Π΅ΠΌΠ΅ цял Π΄Π΅Π½. Π©Π΅ сС фокусирам Π½Π° Π±ΡƒΠΊΠ²Π°Π»Π½ΠΎ Π΄Π²Π΅, Ρ‚Ρ€ΠΈ, Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈ Π½Π΅Ρ‰Π° ΠΈ Ρ‰Π΅ Ρ€Π°Π·ΠΊΠ°Π·Π²Π°ΠΌ ΠΊΠ°ΠΊ Ρ‚Π΅ ΠΏΠΎΠΌΠ°Π³Π°Ρ‚ Π·Π° подобряванС Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.
Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски
И Π°ΠΊΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π° Π±Π°Π·Π°Ρ‚Π°, ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° бъдС ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΡ€Π°Π½ΠΎ? На ΠΏΡŠΡ€Π²ΠΎ място трябва Π΄Π° сС слСди Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎΡΡ‚Ρ‚Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π±Π°Π·Π°Ρ‚Π° Π΅ услуга, която прСдоставя Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π΄Π°Π½Π½ΠΈ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅, ΠΈ трябва Π΄Π° слСдим Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎΡΡ‚Ρ‚Π°, ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° прСдоставя някои качСствСни ΠΈ количСствСни характСристики.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

Врябва ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΄Π° слСдим ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ сС ΡΠ²ΡŠΡ€Π·Π²Π°Ρ‚ с Π½Π°ΡˆΠ°Ρ‚Π° Π±Π°Π·Π°, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Ρ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΊΠ°ΠΊΡ‚ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ, Ρ‚Π°ΠΊΠ° ΠΈ Π²Ρ€Π΅Π΄Π½ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° наврСдят Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ. Вях ΡΡŠΡ‰ΠΎ трябва Π΄Π° Π³ΠΈ наблюдавамС ΠΈ Π΄Π° слСдим тяхната активност.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ сС ΡΠ²ΡŠΡ€ΠΆΠ°Ρ‚ с Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Π΅ Ρ‚Π΅ Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ Π΄Π° работят с Π½Π°ΡˆΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ, Π·Π°Ρ‚ΠΎΠ²Π° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° наблюдавамС ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ работят с Π΄Π°Π½Π½ΠΈΡ‚Π΅: с ΠΊΠΎΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, Π² ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠ° стСпСн с ΠΊΠΎΠΈ индСкси. ВоСст, трябва Π΄Π° ΠΎΡ†Π΅Π½ΠΈΠΌ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ (workload), ΠΊΠΎΠ΅Ρ‚ΠΎ сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΠΎΡ‚ Π½Π°ΡˆΠΈΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

Но ΠΈ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ, Ρ€Π°Π·Π±ΠΈΡ€Π° сС, сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ заявкитС. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ‚Π° сС ΡΠ²ΡŠΡ€Π·Π²Π°Ρ‚ с Π±Π°Π·Π°Ρ‚Π°, искат Π΄Π°Π½Π½ΠΈ Ρ‡Ρ€Π΅Π· заявки, Π·Π°Ρ‚ΠΎΠ²Π° Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° оцСнявамС ΠΊΠ°ΠΊΠ²ΠΈ заявки ΠΈΠΌΠ°ΠΌΠ΅ Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, Π΄Π° слСдим тяхната адСкватност, Π΄Π° провСрявамС, Ρ‡Π΅ Π½Π΅ са написани Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ, ΠΈ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Ρ‚Π°ΠΊΠ°, Ρ‡Π΅ Π΄Π° работят ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ ΠΈ с ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π° производитСлност.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

И Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ Π΅ Π²ΠΈΠ½Π°Π³ΠΈ ΡΠ²ΡŠΡ€Π·Π°Π½Π° с Ρ„ΠΎΠ½ΠΎΠ²ΠΈΡ‚Π΅ процСси. Π€ΠΎΠ½ΠΎΠ²ΠΈΡ‚Π΅ процСси позволяват Π΄Π° сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° производитСлността Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ Π½Π° Π΄ΠΎΠ±Ρ€ΠΎ Π½ΠΈΠ²ΠΎ, Π·Π°Ρ‚ΠΎΠ²Π° Π·Π° тяхната Ρ€Π°Π±ΠΎΡ‚Π° Π΅ Π½ΡƒΠΆΠ½ΠΎ извСстно количСство рСсурси. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Ρ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΏΡ€ΠΈΠΏΠΎΠΊΡ€ΠΈΠ²Π°Ρ‚ с рСсурситС Π½Π° клиСнтскитС заявки, Π·Π°Ρ‚ΠΎΠ²Π° агрСсивната Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° Ρ„ΠΎΠ½ΠΎΠ²ΠΈΡ‚Π΅ процСси ΠΌΠΎΠΆΠ΅ пряко Π΄Π° повлияС Π½Π° производитСлността Π½Π° клиСнтскитС заявки. ВоСст, тях ΡΡŠΡ‰ΠΎ трябва Π΄Π° Π³ΠΈ наблюдавамС ΠΈ слСдим, Π·Π° Π΄Π° Π½Π΅ ΠΈΠΌΠ° Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ изкривявания Π² ΠΏΠ»Π°Π½Π° Π½Π° Ρ„ΠΎΠ½ΠΎΠ²ΠΈΡ‚Π΅ процСси.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

И Ρ‚ΠΎΠ²Π° остава Π² систСмната ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ° Π·Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ. Но ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ ΠΏΠΎ-голямата част ΠΎΡ‚ инфраструктурата Π½ΠΈ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° Π² ΠΎΠ±Π»Π°ΠΊΠ°, систСмнитС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π΅Π½ хост Π²ΠΈΠ½Π°Π³ΠΈ ΠΎΡ‚ΡΡ‚ΡŠΠΏΠ²Π°Ρ‚ Π½Π° Π·Π°Π΄Π΅Π½ ΠΏΠ»Π°Π½. ВсС ΠΏΠ°ΠΊ Π² Π±Π°Π·ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ Ρ‚Π΅ всС ΠΎΡ‰Π΅ са Π°ΠΊΡ‚ΡƒΠ°Π»Π½ΠΈ ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΡŠΡ‚ Π½Π° систСмнитС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΡΡŠΡ‰ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

БистСмнитС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ са ΠΏΠΎΠ²Π΅Ρ‡Π΅-ΠΌΠ΅Π½Π΅ Π² Π΄ΠΎΠ±Ρ€ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅, всички ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠ²ΠΈ систСми Π²Π΅Ρ‡Π΅ Π³ΠΈ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚, Π½ΠΎ всС ΠΏΠ°ΠΊ липсват някои ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ ΠΈ трябва Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Π½Π΅Ρ‰Π°. Π—Π° тях ΡΡŠΡ‰ΠΎ Ρ‰Π΅ спомСна, Ρ‰Π΅ ΠΈΠΌΠ° няколко слайда ΠΏΠΎ Ρ‚Π΅ΠΌΠ°Ρ‚Π°.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски
ΠŸΡŠΡ€Π²Π°Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ° ΠΎΡ‚ ΠΏΠ»Π°Π½Π° Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎΡΡ‚Ρ‚Π°. Какво прСдставлява Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎΡΡ‚Ρ‚Π°? Π’ ΠΌΠΎΠ΅Ρ‚ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎΡΡ‚Ρ‚Π° Π΅ способността Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π° обслуТва Π²Ρ€ΡŠΠ·ΠΊΠΈ, Ρ‚.Π΅. Π±Π°Π·Π°Ρ‚Π° Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½Π°, тя ΠΏΡ€ΠΈΠ΅ΠΌΠ° Π²Ρ€ΡŠΠ·ΠΊΠΈ ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ ΠΊΠ°Ρ‚ΠΎ услуга. И Ρ‚Π°Π·ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎΡΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° сС оцСнява Ρ‡Ρ€Π΅Π· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ характСристики. Π’Π΅Π·ΠΈ характСристики Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ прСдставСни Π½Π° Π΄Π°ΡˆΠ±ΠΎΡ€Π΄ΠΈΡ‚Π΅.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски
Всички знаят ΠΊΠ°ΠΊΠ²ΠΎ прСдставляват Π΄Π°ΡˆΠ±ΠΎΡ€Π΄ΠΈΡ‚Π΅. Π’ΠΎΠ²Π° Π΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ поглСднСш само вСднъТ Π΅ΠΊΡ€Π°Π½Π°, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° информация. И моТСш Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ, Π΄Π°Π»ΠΈ ΠΈΠΌΠ° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² Π±Π°Π·Π°Ρ‚Π° ΠΈΠ»ΠΈ Π½Π΅.
Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ, Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎΡΡ‚Ρ‚Π° Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈ характСристики Π²ΠΈΠ½Π°Π³ΠΈ Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ прСдставяни Π½Π° Π΄Π°ΡˆΠ±ΠΎΡ€Π΄ΠΈΡ‚Π΅, Π·Π° Π΄Π° Π΅ информацията ΠΏΠΎΠ΄ Ρ€ΡŠΠΊΠ° ΠΈ Π²ΠΈΠ½Π°Π³ΠΈ Π±Π»ΠΈΠ·ΠΎ Π΄ΠΎ Ρ‚Π΅Π±. Някои Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎΠΌΠ°Π³Π°Ρ‚ ΠΏΡ€ΠΈ разслСдванС Π½Π° ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ΠΈ ΠΈΠ»ΠΈ ΠΈΠ·Π²ΡŠΠ½Ρ€Π΅Π΄Π½ΠΈ ситуации, трябва Π΄Π° сС прСдставят Π½Π° Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½ΠΈ Π΄Π°ΡˆΠ±ΠΎΡ€Π΄ΠΈ ΠΈΠ»ΠΈ Π΄Π° сС скриват Π² Π»ΠΈΠ½ΠΊΠΎΠ²Π΅ Π·Π° drilldown, ΠΊΠΎΠΈΡ‚ΠΎ водят към странични ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠ²ΠΈ систСми.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° извСстна систСма Π·Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³. Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΠΎΠ²Π°Ρ‚ΠΈΠ²Π½Π° систСма Π·Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³. Вя ΡΡŠΠ±ΠΈΡ€Π° ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π°Π½Π½ΠΈ, Π½ΠΎ ΠΎΡ‚ моя Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ°, понятиСто ΠΈΠΌ Π·Π° Π΄Π°ΡˆΠ±ΠΎΡ€Π΄ Π΅ странно. Има Π»ΠΈΠ½ΠΊ β€žΡΡŠΠ·Π΄Π°ΠΉ Π΄Π°ΡˆΠ±ΠΎΡ€Π΄β€œ. Но ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚Π΅ Π΄Π°ΡˆΠ±ΠΎΡ€Π΄, Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚Π΅ списък ΠΎΡ‚ Π΄Π²Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ, списък ΠΎΡ‚ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ. И ΠΊΠΎΠ³Π°Ρ‚ΠΎ искатС Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π½Π΅Ρ‰ΠΎ, Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚Π΅ Π΄Π° ΠΊΠ»ΠΈΠΊΠ°Ρ‚Π΅ с ΠΌΠΈΡˆΠΊΠ°Ρ‚Π°, ΠΏΡ€Π΅Π²ΡŠΡ€Ρ‚Π°Ρ‚Π΅, Ρ‚ΡŠΡ€ΡΠΈΡ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ°. И Ρ‚ΠΎΠ²Π° ΠΎΡ‚Π½Π΅ΠΌΠ° Π²Ρ€Π΅ΠΌΠ΅, Ρ‚.Π΅. Π΄Π°ΡˆΠ±ΠΎΡ€Π΄ΠΈ Π² истинския смисъл Π½Π° Π΄ΡƒΠΌΠ°Ρ‚Π° няма. Има само ΡΠΏΠΈΡΡŠΡ†ΠΈ с Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

Какво трябва Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ към Ρ‚Π΅Π·ΠΈ Ρ‚Π°Π±Π»Π°? МоТСм Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ с характСристиката Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€. Π’ PostgreSQL ΠΈΠΌΠ° ΠΈΠ·Π³Π»Π΅Π΄ pg_stat_statements. По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Ρ‚ΠΎΠΉ Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½, Π½ΠΎ Ρ‚ΠΎΠ²Π° Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Π²Π°ΠΆΠ½ΠΈΡ‚Π΅ систСмни ΠΈΠ·Π³Π»Π΅Π΄ΠΈ, ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΈΠ½Π°Π³ΠΈ трябва Π΄Π° Π²ΠΊΠ»ΡŽΡ‡ΠΈΠΌ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅. Π’ΠΎΠΉ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° информация Π·Π° всички изпълнявани заявки, ΠΊΠΎΠΈΡ‚ΠΎ са Π±ΠΈΠ»ΠΈ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ΅Π½ΠΈ Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ.

Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° сС основавамС Π½Π° Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²Π·Π΅ΠΌΠ΅ΠΌ ΠΎΠ±Ρ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° изпълнСниС Π½Π° всички заявки ΠΈ Π΄Π° Π³ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΠΌ Π½Π° броя Π½Π° заявкитС, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ горСпосочСнитС ΠΏΠΎΠ»Π΅Ρ‚Π°. Но Ρ‚ΠΎΠ²Π° Π΅ Ρ‚Π°ΠΊΠ°Π²Π° срСдна Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° Π² Π±ΠΎΠ»Π½ΠΈΡ†Π°Ρ‚Π°. МоТСм Π΄Π° сС основавамС Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΠΎΠ»Π΅Ρ‚Π° – ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° изпълнСниС Π½Π° заявкитС, максимално ΠΈ ΠΌΠ΅Π΄ΠΈΠ°Π½ΠΎ. И Π΄ΠΎΡ€ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ ΠΏΠ΅Ρ€Ρ†Π΅Π½Ρ‚ΠΈΠ»ΠΈ; Π² PostgreSQL ΠΈΠΌΠ° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° Ρ‚ΠΎΠ²Π°. И ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ някакви Ρ†ΠΈΡ„Ρ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ описват Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° Π½Π°ΡˆΠ°Ρ‚Π° Π±Π°Π·Π° ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Π²Π΅Ρ‡Π΅ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΡ‚Π΅ заявки, Ρ‚.Π΅. Π½Π΅ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°ΠΌΠ΅ Ρ„Π°Π»ΡˆΠΈΠ²Π° заявка 'select 1' ΠΈ наблюдавамС Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€, Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ Π½Π° Π²Π΅Ρ‡Π΅ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΡ‚Π΅ заявки ΠΈ прСдставямС ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚ΠΎ ΠΎΡ‚Π΄Π΅Π»Π½Π° Ρ†ΠΈΡ„Ρ€Π°, ΠΈΠ»ΠΈ я прСдставямС Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ°.

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° слСдим количСството Π³Ρ€Π΅ΡˆΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ систСмата Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°. Π—Π° Ρ†Π΅Π»Ρ‚Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΈΠ·Π³Π»Π΅Π΄Π° pg_stat_database. ΠžΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°ΠΌΠ΅ сС ΠΏΠΎ ΠΏΠΎΠ»Π΅Ρ‚ΠΎ xact_rollback. Π’ΠΎΠ²Π° ΠΏΠΎΠ»Π΅ ΠΏΠΎΠΊΠ°Π·Π²Π° Π½Π΅ само броя Π½Π° rollback, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ Π² Π±Π°Π·Π°Ρ‚Π°, Π½ΠΎ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΎΡ‚Ρ‡ΠΈΡ‚Π° ΠΈ количСството Π³Ρ€Π΅ΡˆΠΊΠΈ. Условно ΠΊΠ°Π·Π°Π½ΠΎ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°ΠΌΠ΅ Ρ‚Π°Π·ΠΈ Ρ†ΠΈΡ„Ρ€Π° Π² Π½Π°ΡˆΠ΅Ρ‚ΠΎ Ρ‚Π°Π±Π»ΠΎ ΠΈ Π΄Π° наблюдавамС ΠΊΠΎΠ»ΠΊΠΎ Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈΠΌΠ°ΠΌΠ΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°. Ако Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ са ΠΌΠ½ΠΎΠ³ΠΎ, Ρ‚ΠΎΠ²Π° Π²Π΅Ρ‡Π΅ Π΅ Π΄ΠΎΠ±Ρ€Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΈ са Ρ‚Π΅Π·ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ Π·Π°Ρ‰ΠΎ сС случват, Π° слСд Ρ‚ΠΎΠ²Π° Π΄Π° сС впуснСм Π² разслСдванС ΠΈ Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

МоТСм Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π΅Ρ‰ΠΎ, ΠΊΠ°Ρ‚ΠΎ Ρ‚Π°Ρ…ΠΎΠΌΠ΅Ρ‚ΡŠΡ€. Π’ΠΎΠ²Π° Π΅ количСството Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² сСкунда ΠΈ количСството заявки Π² сСкунда. Условно ΠΊΠ°Π·Π°Π½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Ρ‚Π΅Π·ΠΈ Ρ†ΠΈΡ„Ρ€ΠΈ ΠΊΠ°Ρ‚ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π° производитСлност Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈ Π΄Π° Π½Π°Π±Π»ΡŽΠ΄Π°Π²Π°Ρ‚Π΅ Π΄Π°Π»ΠΈ ΠΈΠΌΠ° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ ΠΎΡ‚ заявки, Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ ΠΎΡ‚ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ, ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ, Π±Π°Π·Π°Ρ‚Π° Π½Π΅ Π΅ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π΅Π½Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ някой Π±Π΅ΠΊΠ΅Π½Π΄ Π΅ ΠΏΠ°Π΄Π½Π°Π». Π’Π°Π·ΠΈ Ρ†ΠΈΡ„Ρ€Π° Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° сС слСди постоянно ΠΈ Π΄Π° ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Π΅ Π·Π° нашия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Ρ‚Π°ΠΊΠ°Π²Π° производитСлност Π΅ Π½ΠΎΡ€ΠΌΠ°Π»Π½Π°, Π° стойности Π½Π°Π΄ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ нСя Π²Π΅Ρ‡Π΅ са ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΈ ΠΈ нСясни, Π·Π°Ρ‚ΠΎΠ²Π° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС Ρ€Π°Π·Π³Π»Π΅Π΄Π° Π·Π°Ρ‰ΠΎ са Ρ‚Π°ΠΊΠΈΠ²Π° Ρ†ΠΈΡ„Ρ€ΠΈ.

Π—Π° Π΄Π° ΠΎΡ†Π΅Π½ΠΈΠΌ количСството Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅, ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° сС ΠΎΠ±ΡŠΡ€Π½Π΅ΠΌ към ΠΈΠ·Π³Π»Π΅Π΄Π° pg_stat_database. МоТСм Π΄Π° ΡΡŠΠ±Π΅Ρ€Π΅ΠΌ количСството Π½Π° commit ΠΈ количСството Π½Π° rollback ΠΈ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ количСството Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² сСкунда.

Всички Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚, Ρ‡Π΅ Π² Π΅Π΄Π½Π° транзакция ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΏΠΎΠ±Π΅Ρ€Π°Ρ‚ няколко заявки? Π—Π°Ρ‚ΠΎΠ²Π° TPS ΠΈ QPS са ΠΌΠ°Π»ΠΊΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ.

Броят Π½Π° заявкитС Π² сСкунда ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ ΠΎΡ‚ pg_stat_statements ΠΈ просто Π΄Π° смСтнСм сумата Π½Π° всички изпълнСни заявки. Π Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌΠΎ Π΅, Ρ‡Π΅ сравнявамС Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° стойност с ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π°, ΠΈΠ·Π²Π°ΠΆΠ΄Π°ΠΌΠ΅, ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ Π΄Π΅Π»Ρ‚Π°Ρ‚Π°, ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ количСството.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

МоТСм Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΏΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅, ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΡ‰ΠΎ ΠΏΠΎΠΌΠ°Π³Π°Ρ‚ Π΄Π° ΠΎΡ†Π΅Π½ΠΈΠΌ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎΡΡ‚Ρ‚Π° Π½Π° Π½Π°ΡˆΠ°Ρ‚Π° Π±Π°Π·Π° ΠΈ Π΄Π° прослСдим – ΠΈΠΌΠ°Π»ΠΎ Π»ΠΈ Π΅ някакво downtime.

Π•Π΄Π½Π° ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π΅ uptime. Но uptime Π² PostgreSQL Π΅ ΠΌΠ°Π»ΠΊΠΎ Ρ…ΠΈΡ‚Ρ€Π° Ρ€Π°Π±ΠΎΡ‚Π°. Π©Π΅ Π²ΠΈ Ρ€Π°Π·ΠΊΠ°ΠΆΠ° Π·Π°Ρ‰ΠΎ. ΠšΠΎΠ³Π°Ρ‚ΠΎ PostgreSQL стартира, Π·Π°ΠΏΠΎΡ‡Π²Π° Π΄Π° отброява uptime. Но Π°ΠΊΠΎ Π² някой ΠΌΠΎΠΌΠ΅Π½Ρ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€Π΅Π· Π½ΠΎΡ‰Ρ‚Π°, Π΅ изпълнявана някаква Π·Π°Π΄Π°Ρ‡Π° ΠΈ OOM-killer Π΅ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΠ» Π΄Π° ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈ Π΄ΡŠΡ‰Π΅Ρ€Π½ΠΈΡ процСс Π½Π° PostgreSQL, Ρ‚ΠΎ Π² Ρ‚ΠΎΠ·ΠΈ случай PostgreSQL прСкратява ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° всички ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ, Π½ΡƒΠ»ΠΈΡ€Π° областта Π½Π° ΡˆΠ°Ρ€Π΄Π½Π°Ρ‚Π° ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΈ Π·Π°ΠΏΠΎΡ‡Π²Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ ΠΎΡ‚ послСдната ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π° Ρ‚ΠΎΡ‡ΠΊΠ°. И Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Ρ‚Ρ€Π°Π΅ Ρ‚ΠΎΠ²Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π° Ρ‚ΠΎΡ‡ΠΊΠ°, Π±Π°Π·Π°Ρ‚Π° Π½Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ° ΡΠ²ΡŠΡ€Π·Π²Π°Π½ΠΈΡ, Ρ‚.Π΅. Ρ‚Π°Π·ΠΈ ситуация ΠΌΠΎΠΆΠ΅ Π΄Π° сС оцСнява ΠΊΠ°Ρ‚ΠΎ downtime. Но Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π° Π±Ρ€ΠΎΡΡ‡ΡŠΡ‚ Π½Π° uptime няма Π΄Π° сС Π½ΡƒΠ»ΠΈΡ€Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΎΡ‚Ρ‡ΠΈΡ‚Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ ΠΎΡ‚ стартиранСто Π½Π° postmaster ΠΎΡ‚ самото Π½Π°Ρ‡Π°Π»ΠΎ. Π—Π°Ρ‚ΠΎΠ²Π° Ρ‚Π°ΠΊΠΈΠ²Π° ситуации ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ пропуснати.

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС слСди количСството Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΡ†ΠΈ Π·Π° Π²Π°ΠΊΡƒΡƒΠΌΠ°. Всички знаят ΠΊΠ°ΠΊΠ²ΠΎ Π΅ autovacuum Π² PostgreSQL? Π’ΠΎΠ²Π° Π΅ интСрСсна подсистСма Π² PostgreSQL. Написани са ΠΌΠ½ΠΎΠ³ΠΎ статии Π·Π° нСя, Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΈ са ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΠ»Π°Π΄ΠΈ. Има ΠΌΠ½ΠΎΠ³ΠΎ дискусии Π·Π° Π²Π°ΠΊΡƒΡƒΠΌΠ°, ΠΊΠ°ΠΊ трябва Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ. Много Ρ…ΠΎΡ€Π° Π³ΠΎ смятат Π·Π° Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ Π·Π»ΠΎ. Но Ρ‚Π°ΠΊΠ° ΠΈ Π΅. Π’ΠΎΠ²Π° Π΅ Π½Π΅Ρ‰ΠΎ ΠΊΠ°Ρ‚ΠΎ ΡΡŠΠ±ΠΈΡ€Π°Ρ‡ Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ почиства остарСлитС вСрсии Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅Ρ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ са Π½ΡƒΠΆΠ½ΠΈ Π½Π° Π½ΠΈΡ‚ΠΎ Π΅Π΄Π½Π° ΠΎΡ‚ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ ΠΈ освобоТдава място Π² Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅, индСкситС Π·Π° Π½ΠΎΠ²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅.

Π—Π°Ρ‰ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС слСди? Π—Π°Ρ‰ΠΎΡ‚ΠΎ Π²Π°ΠΊΡƒΡƒΠΌ понякога ΠΏΡ€Π°Π²ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅Π΄ΠΈ. Π’ΠΎΠΉ ΠΎΡ‚Π½Π΅ΠΌΠ° голямо количСство рСсурси ΠΈ клиСнтскитС заявки страдат ΠΎΡ‚ Ρ‚ΠΎΠ²Π°.

И Π½Π°Π±Π»ΡŽΠ΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π° Π½Π΅Π³ΠΎ Ρ‡Ρ€Π΅Π· ΠΈΠ·Π³Π»Π΅Π΄Π° pg_stat_activity, Π·Π° ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ говоря Π² слСдващия Ρ€Π°Π·Π΄Π΅Π». Π’ΠΎΠ·ΠΈ ΠΈΠ·Π³Π»Π΅Π΄ ΠΏΠΎΠΊΠ°Π·Π²Π° Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° активност Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ. Π§Ρ€Π΅Π· Ρ‚Π°Π·ΠΈ активност ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° прослСдим броя Π½Π° Π²Π°ΠΊΡƒΡƒΠΌΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ работят Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°. МоТСм Π΄Π° слСдим Π²Π°ΠΊΡƒΡƒΠΌΠΈ ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Π΅ Π°ΠΊΠΎ смС Π½Π°Π΄Ρ…Π²ΡŠΡ€Π»ΠΈΠ»ΠΈ Π»ΠΈΠΌΠΈΡ‚Π°, Ρ‚ΠΎΠ²Π° Π΅ ΠΏΠΎΠ²ΠΎΠ΄ Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ настройкитС Π½Π° PostgreSQL ΠΈ Π΄Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Π²Π°ΠΊΡƒΡƒΠΌΠ°.

Π”Ρ€ΡƒΠ³Π° характСристика Π½Π° PostgreSQL Π΅, Ρ‡Π΅ Ρ‚ΠΎΠΉ страда ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ Π΄ΡŠΠ»Π³ΠΈΡ‚Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. ОсобСно ΠΎΡ‚ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ висят дълго Π²Ρ€Π΅ΠΌΠ΅ ΠΈ Π½ΠΈΡ‰ΠΎ Π½Π΅ правят. Π’ΠΎΠ²Π° са Ρ‚Π°ΠΊΠ° Π½Π°Ρ€Π΅Ρ‡Π΅Π½ΠΈΡ‚Π΅ stat idle-in-transaction. Π’Π°ΠΊΠ°Π²Π° транзакция Π·Π°Π΄ΡŠΡ€ΠΆΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π²Π°Π½ΠΈΡ ΠΈ ΠΏΡ€Π΅Ρ‡ΠΈ Π½Π° Π²Π°ΠΊΡƒΡƒΠΌΠ°. И Π² Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° – Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ сС ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Ρ‚ ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€. А заявкитС, ΠΊΠΎΠΈΡ‚ΠΎ работят с Ρ‚Π΅Π·ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ Π΄Π° работят ΠΏΠΎ-Π±Π°Π²Π½ΠΎ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ трябва Π΄Π° ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΡ‚ всички стари вСрсии Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅Ρ‚Π΅ ΠΎΡ‚ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° диска ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ. Π—Π°Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ, ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° Π½Π°ΠΉ-Π΄ΡŠΠ»Π³ΠΈΡ‚Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ Π½Π°ΠΉ-Π΄ΡŠΠ»Π³ΠΈΡ‚Π΅ заявки Π½Π° Π²Π°ΠΊΡƒΡƒΠΌΠ° ΡΡŠΡ‰ΠΎ трябва Π΄Π° сС Π½Π°Π±Π»ΡŽΠ΄Π°Π²Π°Ρ‚. И Π°ΠΊΠΎ Π²ΠΈΠ΄ΠΈΠΌ някакви процСси, ΠΊΠΎΠΈΡ‚ΠΎ работят Π²Π΅Ρ‡Π΅ ΠΌΠ½ΠΎΠ³ΠΎ дълго, ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 10-20-30 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ Π·Π° OLTP Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅, трябва Π΄Π° ΠΎΠ±ΡŠΡ€Π½Π΅ΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° тях ΠΈ ΠΈΠ»ΠΈ Π΄Π° Π³ΠΈ Π·Π°Π²ΡŠΡ€ΡˆΠΈΠΌ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»Π½ΠΎ, ΠΈΠ»ΠΈ Π΄Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, Π·Π° Π΄Π° Π½Π΅ сС задСйстват ΠΈ висят Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° дълго. Π—Π° Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ‡Π½ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ 10-20-30 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ – Ρ‚ΠΎΠ²Π° Π΅ Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΎ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΈ ΠΏΠΎ-дълги случаи.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски
БлСдващият Π½ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π΅ с ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ. ΠšΠΎΠ³Π°Ρ‚ΠΎ Π²Π΅Ρ‡Π΅ смС създали Π΄Π°ΡˆΠ±ΠΎΡ€Π΄, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ смС ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π»ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎΡΡ‚, ΠΌΠΎΠΆΠ΅ΠΌ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° информация Π·Π° ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ.

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡΡ‚Π° Π·Π° ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ Π΅ Π²Π°ΠΆΠ½Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΎΡ‚ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° PostgreSQL ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ. Има Π΄ΠΎΠ±Ρ€ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ ΠΈ лоши ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ.

ΠŸΡ€ΠΎΡΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Под ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ сС Π΅ ΡΠ²ΡŠΡ€Π·Π²Π°Π»ΠΎ с Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΠΈ Π²Π΅Π΄Π½Π°Π³Π° Π·Π°ΠΏΠΎΡ‡Π²Π° Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° своитС заявки, Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ Π³ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΈ изпълнява, Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ сС Π²Ρ€ΡŠΡ‰Π°Ρ‚ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Π’ΠΎΠ²Π° са Π΄ΠΎΠ±Ρ€ΠΈΡ‚Π΅ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΈΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ.

Има ситуации, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ сС Π΅ ΡΠ²ΡŠΡ€Π·Π°Π», Π·Π°Π΄ΡŠΡ€ΠΆΠ° Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π°, Π½ΠΎ Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½ΠΈΡ‰ΠΎ Π½Π΅ ΠΏΡ€Π°Π²ΠΈ. Π’ΠΎΠΉ Π΅ Π² ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ idle.

Но понякога ΠΈΠΌΠ° лоши ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ. НапримСр, ΡΡŠΡ‰ΠΈΡΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ сС ΡΠ²ΡŠΡ€Π·Π²Π°, ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π° транзакция, ΠΏΡ€Π°Π²ΠΈ Π½Π΅Ρ‰ΠΎ Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΠΈ слСд Ρ‚ΠΎΠ²Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° Π² ΠΊΠΎΠ΄Π°, Π·Π° Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ΅ с външСн рСсурс ΠΈΠ»ΠΈ Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ. Но ΠΏΡ€ΠΈ Ρ‚ΠΎΠ²Π° Π½Π΅ затваря транзакцията. И транзакцията остава Π°ΠΊΡ‚ΠΈΠ²Π½Π° Π² Π±Π°Π·Π°Ρ‚Π° ΠΈ Π±Π»ΠΎΠΊΠΈΡ€Π° Ρ€Π΅Π΄Π°. Π’ΠΎΠ²Π° Π΅ лошо ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅. Ако Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π²ΡŠΡ‚Ρ€Π΅ сС сринС ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ (Exception), транзакцията ΠΌΠΎΠΆΠ΅ Π΄Π° останС ΠΎΡ‚Π²ΠΎΡ€Π΅Π½Π° Π·Π° ΠΌΠ½ΠΎΠ³ΠΎ дълго Π²Ρ€Π΅ΠΌΠ΅. И Ρ‚ΠΎΠ²Π° пряко влияС Π½Π° производитСлността Π½Π° PostgreSQL. PostgreSQL Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ-Π±Π°Π²Π½ΠΎ. Π—Π°Ρ‚ΠΎΠ²Π° Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° слСдитС Ρ‚Π°ΠΊΠΈΠ²Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ Π½Π°Π²Ρ€Π΅ΠΌΠ΅ ΠΈ Π΄Π° прСкратяватС Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΈΠΌ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»Π½ΠΎ. Врябва Π΄Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ си, Π·Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅Ρ‚Π΅ Ρ‚Π°ΠΊΠΈΠ²Π° ситуации.

Π”Ρ€ΡƒΠ³ΠΈ лоши ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ са ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π² ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°Π½Π΅. Но Ρ‚Π΅ стават лоши ΠΏΠΎΡ€Π°Π΄ΠΈ обстоятСлствата. НапримСр, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½Π° проста транзакция: ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ΅ транзакция, Π΄Π° Π²Π·Π΅ΠΌΠ΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ Π² ΠΊΠΎΠ΄Π° Π΄Π° сС сринС ΠΈ Π΄Π° останС висяща транзакция. Идва Π΄Ρ€ΡƒΠ³ ΠΊΠ»ΠΈΠ΅Π½Ρ‚, иска ΡΡŠΡ‰ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ, Π½ΠΎ Ρ‚ΠΎΠΉ сС сблъсква с Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ висящата транзакция Π²Π΅Ρ‡Π΅ Π΄ΡŠΡ€ΠΆΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅. И Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° транзакция Ρ‰Π΅ останС Π² ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°Π½Π΅, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ ΠΏΡŠΡ€Π²Π°Ρ‚Π° транзакция Π½Π΅ Π·Π°Π²ΡŠΡ€ΡˆΠΈ ΠΈΠ»ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ ΠΉ Π½Π΅ я Π·Π°Ρ‚Π²ΠΎΡ€ΠΈ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»Π½ΠΎ. Π’Π°ΠΊΠ°Π²Π° ситуация, ΠΏΡ€ΠΈ която Ρ‡Π°ΠΊΠ°Ρ‰ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС Π½Π°Ρ‚Ρ€ΡƒΠΏΠ²Π°Ρ‚ ΠΈ Π΄Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΡΡ‚ Π»ΠΈΠΌΠΈΡ‚Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈΡ‚Π΅ с Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ. И ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π»ΠΈΠΌΠΈΡ‚ΡŠΡ‚ сС изпълни, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π²Π΅Ρ‡Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ с Π±Π°Π·Π°Ρ‚Π°. Π’ΠΎΠ²Π° Π΅ спСшна ситуация Π·Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π—Π°Ρ‚ΠΎΠ²Π° Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° слСдитС Π»ΠΎΡˆΠΈΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ ΠΈ Π΄Π° Ρ€Π΅Π°Π³ΠΈΡ€Π°Ρ‚Π΅ Π½Π° тях Π½Π°Π²Ρ€Π΅ΠΌΠ΅.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

Π”Ρ€ΡƒΠ³ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³. И Ρ‚ΡƒΠΊ Π²Π΅Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π΅Π½ Π΄Π°ΡˆΠ±ΠΎΡ€Π΄. Има информация Π·Π° ΠΊΠΎΠ½Π΅ΠΊΡ†ΠΈΠΈΡ‚Π΅ ΠΎΡ‚Π³ΠΎΡ€Π΅. DB connection – 8 броя. И Ρ‚ΠΎΠ²Π° Π΅ всичко. НямамС информация Π·Π° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ, ΠΊΠΎΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ просто са Π² Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅, Π½ΠΈΡ‰ΠΎ Π½Π΅ правят. Няма информация Π·Π° висящитС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ Π·Π° Ρ‡Π°ΠΊΠ°Ρ‰ΠΈΡ‚Π΅ ΠΊΠΎΠ½Π΅ΠΊΡ†ΠΈΠΈ, Ρ‚.Π΅. Ρ‚ΠΎΠ²Π° Π΅ просто Ρ†ΠΈΡ„Ρ€Π°, която ΠΏΠΎΠΊΠ°Π·Π²Π° количСството Π½Π° ΠΊΠΎΠ½Π΅ΠΊΡ†ΠΈΠΈΡ‚Π΅ ΠΈ Π½ΠΈΡ‰ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅. А Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ Π³Π°Π΄Π°ΠΉΡ‚Π΅ сами.
Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски
Π‘ΠΏΠΎΡ€Π΅Π΄ Ρ‚ΠΎΠ²Π°, Π·Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Ρ‚Π°Π·ΠΈ информация Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, трябва Π΄Π° сС ΠΎΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ към систСмната Π²ΡŽΡ…Π° pg_stat_activity. Ако ΠΏΡ€Π΅ΠΊΠ°Ρ€Π²Π°Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π² PostgreSQL, Ρ‚ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±Ρ€Π° Π²ΡŽΡ…Π°, която трябва Π΄Π° станС ваш приятСл, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π° Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° активност Π² PostgreSQL, Ρ‚.Π΅. ΠΊΠ°ΠΊΠ²ΠΎ сС случва Π² Π½Π΅Π³ΠΎ. Π—Π° всСки процСс ΠΈΠΌΠ° ΠΎΡ‚Π΄Π΅Π»Π΅Π½ Ρ€Π΅Π΄, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π° информация Π·Π° Ρ‚ΠΎΠ·ΠΈ процСс: ΠΎΡ‚ ΠΊΠΎΠΉ хост Π΅ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ, ΠΏΠΎΠ΄ какъв ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π», с ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΠΌΠ΅, ΠΊΠΎΠ³Π° Π΅ стартирано транзакцията, ΠΊΠ°ΠΊΠ²ΠΈ заявки сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, коя заявка Π΅ Π±ΠΈΠ»Π° изпълнСна послСдно. И, ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ, ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΡ†Π΅Π½ΠΈΠΌ ΠΏΠΎ ΠΏΠΎΠ»Π΅Ρ‚ΠΎ stat. Условно ΠΊΠ°Π·Π°Π½ΠΎ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Π³Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π΅ ΠΏΠΎ Ρ‚ΠΎΠ²Π° ΠΏΠΎΠ»Π΅ ΠΈ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ‚Π΅Π·ΠΈ stats, ΠΊΠΎΠΈΡ‚ΠΎ сСга са Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΠΈ броя Π½Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½ΠΈΡΡ‚Π° с Ρ‚ΠΎΠ·ΠΈ stat Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ. И Π²Π΅Ρ‡Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡ‚Π΅ Ρ†ΠΈΡ„Ρ€ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°ΠΌΠ΅ Π² нашия ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ Π΄Π° рисувамС Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΏΠΎ тях.
Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° оцСняватС ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° транзакцията. Π’Π΅Ρ‡Π΅ спомСнах, Ρ‡Π΅ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° оцСняватС ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° Π²Π°ΠΊΡƒΡƒΠΌΠΈΡ‚Π΅, Π½ΠΎ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ сС оцСняват Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠ°. Има ΠΏΠΎΠ»Π΅Ρ‚Π° xact_start ΠΈ query_start. Π’Π΅, условно ΠΊΠ°Π·Π°Π½ΠΎ, ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° стартиранС Π½Π° транзакцията ΠΈ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° стартиранС Π½Π° заявката. Π’Π·Π΅ΠΌΠ°ΠΌΠ΅ функцията now(), която ΠΏΠΎΠΊΠ°Π·Π²Π° тСкущия Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€, ΠΈ ΠΈΠ·Π²Π°ΠΆΠ΄Π°ΠΌΠ΅ timestamp Π½Π° транзакцията ΠΈ заявката. И ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° транзакцията, ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° заявката.

Ако Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ дълги Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, трябва Π΄Π° Π³ΠΈ Π·Π°Π²ΡŠΡ€ΡˆΠ²Π°ΠΌΠ΅. Π—Π° OLTP Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π΄ΡŠΠ»Π³ΠΈΡ‚Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ са Π²Π΅Ρ‡Π΅ Π½Π°Π΄ 1-2-3 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ.. Π—Π° OLAP Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π΄ΡŠΠ»Π³ΠΈΡ‚Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ са Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΈ, Π½ΠΎ Π°ΠΊΠΎ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°Ρ‚ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ Π΄Π²Π° часа, Ρ‚ΠΎΠ²Π° ΡΡŠΡ‰ΠΎ Π΅ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ, Ρ‡Π΅ някъдС ΠΈΠΌΠ° нСравновСсиС.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски
ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ сС ΡΠ²ΡŠΡ€ΠΆΠ°Ρ‚ с Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, Ρ‚Π΅ Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ Π΄Π° работят с Π½Π°ΡˆΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ. Π’Π΅ сС ΠΎΠ±Ρ€ΡŠΡ‰Π°Ρ‚ към Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅, Ρ‚Π΅ сС ΠΎΠ±Ρ€ΡŠΡ‰Π°Ρ‚ към индСкситС, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°. И Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° оцСнявамС ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ работят с Ρ‚Π΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ.

Π’ΠΎΠ²Π° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Π·Π° Π΄Π° ΠΎΡ†Π΅Π½ΠΈΠΌ Π½Π°ΡˆΠ΅Ρ‚ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ ΠΈ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠΎΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ са Π½Π°ΠΉ-Β«Π³ΠΎΡ€Π΅Ρ‰ΠΈΒ». НапримСр, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅ Π² ситуации, ΠΊΠΎΠ³Π°Ρ‚ΠΎ искамС Β«Π³ΠΎΡ€Π΅Ρ‰ΠΈΡ‚Π΅Β» Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ Π΄Π° поставим Π½Π° Π±ΡŠΡ€Π·ΠΎ SSD Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. НапримСр, Π°Ρ€Ρ…ΠΈΠ²Π½ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΡ‚Π΄Π°Π²Π½Π° Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅, ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ прСмСстСни Π½Π° «студСн» Π°Ρ€Ρ…ΠΈΠ², Π½Π° SATA дисковС, ΠΈ Π½Π΅ΠΊΠ° Ρ‚Π΅ Π΄Π° останат Ρ‚Π°ΠΌ, Π΄ΠΎΡΡ‚ΡŠΠΏΡŠΡ‚ Π΄ΠΎ тях Ρ‰Π΅ Π΅ ΠΏΡ€ΠΈ нСобходимост.

Π’ΠΎΠ²Π° Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈ Π·Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ слСд Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ€Π΅Π»ΠΈΠ·ΠΈ ΠΈ дСплоя. Π”Π° ΠΊΠ°ΠΆΠ΅ΠΌ, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ пуска Π½ΠΎΠ²Π° функция. НапримСр, Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π½ΠΎΠ²Π° функционалност Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π±Π°Π·Π°Ρ‚Π°. И Π°ΠΊΠΎ построим Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅, Π½Π° Ρ‚Π΅Π·ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ лСсно Ρ‰Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ΅ΠΌ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ. НапримСр, рязко ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° update ΠΈΠ»ΠΈ increase. Π’ΠΎΠ²Π° Ρ‰Π΅ сС Π²ΠΈΠΆΠ΄Π° ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±Ρ€Π΅.

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ΅ΠΌ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ Π² Β«ΠΏΠΎΠΏΠ»ΡŠΠ·Π½Π°Π»Π°Ρ‚Π°Β» статистика. Какво ΠΎΠ·Π½Π°Ρ‡Π°Π²Π° Ρ‚ΠΎΠ²Π°? Π’ PostgreSQL ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡŠΡ€ ΠΈ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊ Π½Π° заявки. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ отдСлят ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ ΡƒΡΡŠΠ²ΡŠΡ€ΡˆΠ΅Π½ΡΡ‚Π²Π°Π½Π΅. Как Ρ€Π°Π±ΠΎΡ‚ΠΈ? Π—Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π° Π΄ΠΎΠ±Ρ€ΠΈ ΠΏΠ»Π°Π½ΠΎΠ²Π΅, PostgreSQL ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎ ΡΡŠΠ±ΠΈΡ€Π° статистика Π·Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅. Π’ΠΎΠ²Π° са Π½Π°ΠΉ-чСститС стойности: количСство ΡƒΠ½ΠΈΠΊΠ°Π»Π½ΠΈ стойности, информация Π·Π° NULL Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°, ΠΌΠ½ΠΎΠ³ΠΎ информация.

На Π±Π°Π·Π°Ρ‚Π° Π½Π° Ρ‚Π°Π·ΠΈ статистика, ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊΡŠΡ‚ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π° няколко заявки, ΠΈΠ·Π±ΠΈΡ€Π° Π½Π°ΠΉ-ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½Π°Ρ‚Π° ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΠ»Π°Π½ Π·Π° изпълнСниС Π½Π° самата заявка ΠΈ Π²Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅.

Иногда, статистиката «поплъзва». ΠšΠ°Ρ‡Π΅ΡΡ‚Π²ΠΎΡ‚ΠΎ ΠΈ количСството Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ са сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠ»ΠΈ, Π½ΠΎ статистиката Π½Π΅ Π΅ ΡΡŠΠ±Ρ€Π°Π½Π°. И ΡΡŠΠ·Π΄Π°Π΄Π΅Π½ΠΈΡ‚Π΅ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΎΠΊΠ°ΠΆΠ°Ρ‚ Π½Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½ΠΈ. Ако ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ сС ΠΎΠΊΠ°ΠΆΠ΅ Π½Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½ΠΎ спорСд ΡΡŠΠ±Ρ€Π°Π½Π°Ρ‚Π° статистика ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅, Ρ‰Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Ρ‚Π΅Π·ΠΈ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ. НапримСр, някъдС качСството Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ сС Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠ»ΠΎ ΠΈ вмСсто индСкс, сС Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π» послСдоватСлСн ΠΏΡ€ΠΎΡ…ΠΎΠ΄ ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°. Π’.Π΅., Π°ΠΊΠΎ Π½Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ сС Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° Π²ΡŠΡ€Π½Π΅ само 100 Ρ€Π΅Π΄Π° (с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ limit 100), Π·Π° Ρ‚ΠΎΠ²Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ Ρ‰Π΅ бъдС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ΅Π½ пълСн ΠΎΠ±Ρ…ΠΎΠ΄. И Ρ‚ΠΎΠ²Π° Π²ΠΈΠ½Π°Π³ΠΈ сС отразява ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ Π½Π° производитСлността.

И Π½ΠΈΠ΅ Ρ‰Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Ρ‚ΠΎΠ²Π° Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°. И Π²Π΅Ρ‡Π΅ Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Ρ‚Π°Π·ΠΈ заявка, Π΄Π° изпълним explain Π·Π° нСя, Π΄Π° ΡΡŠΠ±Π΅Ρ€Π΅ΠΌ статистика, Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ Π½ΠΎΠ² Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ индСкс. И Π΄Π° Ρ€Π΅Π°Π³ΠΈΡ€Π°ΠΌΠ΅ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π—Π°Ρ‚ΠΎΠ²Π° Ρ‚ΠΎΠ²Π° Π΅ Π²Π°ΠΆΠ½ΠΎ.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

Π”Ρ€ΡƒΠ³ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³. Мисля, Ρ‡Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ вас Π³ΠΎ ΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ популярСн. Кой Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² своитС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Prometheus? А ΠΊΡ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ этот ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ совмСстно с Prometheus? Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² стандартном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ этого ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π΅ΡΡ‚ΡŒ Π΄Π°ΡˆΠ±ΠΎΡ€Π΄ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с PostgreSQL – postgres_exporter Prometheus. Но Ρ‚ΡƒΠΊ ΠΈΠΌΠ° Π΅Π΄ΠΈΠ½ лош Π΄Π΅Ρ‚Π°ΠΉΠ».

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

Има няколко Π³Ρ€Π°Ρ„ΠΈΠΊΠ°. И ΠΊΠ°Ρ‚ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ†Π° са посочСни Π±Π°ΠΉΡ‚ΠΎΠ²Π΅Ρ‚Π΅, Ρ‚.Π΅. Ρ‚Π°ΠΌ са 5 Π³Ρ€Π°Ρ„ΠΈΠΊΠ°. Π’ΠΎΠ²Π° са Insert data, Update data, Delete data, Fetch data ΠΈ Return data. ΠšΠ°Ρ‚ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Π·Π° ΠΈΠ·ΠΌΠ΅Ρ€Π²Π°Π½Π΅ са посочСни Π±Π°ΠΉΡ‚ΠΎΠ²Π΅Ρ‚Π΅. Но ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅, Ρ‡Π΅ статистиката Π² PostgreSQL Π²Ρ€ΡŠΡ‰Π° Π΄Π°Π½Π½ΠΈ Π² tuple (Ρ€Π΅Π΄ΠΎΠ²Π΅). И ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ Ρ‚Π΅Π·ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ са ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡŠΡ€ Π½Π°Ρ‡ΠΈΠ½ Π΄Π° Π·Π°Π½ΠΈΠΆΠΈΡ‚Π΅ Π²Π°ΡˆΠ΅Ρ‚ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ tuple Π½Π΅ Π΅ Π±Π°ΠΉΡ‚, tuple Π΅ Ρ€Π΅Π΄, ΠΌΠ½ΠΎΠ³ΠΎ Π±Π°ΠΉΡ‚ΠΎΠ²Π΅ ΠΈ Π΅ с ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° дълТина. Π’.Π΅. Π΄Π° изчислитС Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π² Π±Π°ΠΉΡ‚ΠΎΠ²Π΅ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° tuples Π΅ Π½Π΅Ρ€Π΅Π°Π»Π½Π° ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ слоТна Π·Π°Π΄Π°Ρ‡Π°. Π—Π°Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Ρ‚Π°Π±Π»ΠΎ ΠΈΠ»ΠΈ Π²Π³Ρ€Π°Π΄Π΅Π½ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³, Π²ΠΈΠ½Π°Π³ΠΈ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚Π΅, Ρ‡Π΅ Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΈ Π²ΠΈ Π²Ρ€ΡŠΡ‰Π° ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡ†Π΅Π½Π΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

Как Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ статистика Π·Π° Ρ‚Π΅Π·ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ? Π—Π° Ρ‚ΠΎΠ²Π° Π² PostgreSQL ΠΈΠΌΠ° извСстно сСмСйство ΠΎΡ‚ ΠΈΠ·Π³Π»Π΅Π΄ΠΈ. И основният ΠΈΠ·Π³Π»Π΅Π΄ Π΅ pg_stat_user_tables. User_tables ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ са създадСни ΠΎΡ‚ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° потрСбитСля. Π’ контСкста ΠΈΠΌΠ° систСмни ΠΈΠ·Π³Π»Π΅Π΄ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΎΡ‚ самия PostgreSQL. И ΠΈΠΌΠ° ΠΎΠ±ΠΎΠ±Ρ‰Π°Π²Π°Ρ‰Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° Alltables, която Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΊΠ°ΠΊΡ‚ΠΎ систСмнитС, Ρ‚Π°ΠΊΠ° ΠΈ потрСбитСлскитС Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС основаватС Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ ΠΈ Π΄Π° Π΅ ΠΎΡ‚ тях, ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΈ харСсва Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ.

Π‘ΠΏΠΎΡ€Π΅Π΄ посочСнитС ΠΏΠΎ-Π³ΠΎΡ€Π΅ ΠΏΠΎΠ»Π΅Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΎΡ†Π΅Π½ΠΈΡ‚Π΅ броя Π½Π° insert, update ΠΈ delete. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΡŠΡ‚ с Ρ‚Π°Π±Π»ΠΎΡ‚ΠΎ, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…, Ρ‚ΠΎΡ‡Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ‚Π΅Π·ΠΈ ΠΏΠΎΠ»Π΅Ρ‚Π° Π·Π° ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π° характСристикитС Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ. Π—Π°Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° сС основавамС ΠΈ Π½Π° тях. Но трябва Π΄Π° ΠΏΠΎΠΌΠ½ΠΈΠΌ, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° са tuples, Π° Π½Π΅ Π±Π°ΠΉΡ‚ΠΎΠ²Π΅, Π·Π°Ρ‚ΠΎΠ²Π° Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ просто Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Π² Π±Π°ΠΉΡ‚ΠΎΠ²Π΅.

На Π±Π°Π·Π° Π½Π° Ρ‚Π΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°ΠΌΠ΅ Ρ‚.Π½Π°Ρ€. TopN Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ. НапримСр, Top-5, Top-10. И ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° слСдим Π³ΠΎΡ€Π΅Ρ‰ΠΈΡ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ останалитС. НапримСр, 5 β€žΠ³ΠΎΡ€Π΅Ρ‰ΠΈβ€œ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ ΠΏΠΎ вставки. И с Ρ‚Π΅Π·ΠΈ TopN Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ оцСнявамС Π½Π°ΡˆΠ΅Ρ‚ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° оцСнявамС ΠΏΠΈΠΊΠΎΠ²Π΅Ρ‚Π΅ Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ слСд Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ издания, Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ дСплойвания.

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° оцСняватС Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ понякога Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ пускат Π½ΠΎΠ²Π° функция ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ Π΄Π° Π½Π°Π΄ΡƒΠ²Π°Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ си, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Ρ€Π΅ΡˆΠ°Π²Π°Ρ‚ Π΄Π° добавят Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ ΠΎΠ±Π΅ΠΌ Π΄Π°Π½Π½ΠΈ, Π½ΠΎ Π½Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠΆΠ΄Π°Ρ‚ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ²Π° Ρ‰Π΅ сС ΠΎΡ‚Ρ€Π°Π·ΠΈ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ. Подобни случаи ΡΡŠΡ‰ΠΎ Π½ΠΈ ΠΈΠ·Π½Π΅Π½Π°Π΄Π²Π°Ρ‚.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

И сСга малък Π²ΡŠΠΏΡ€ΠΎΡ Π·Π° вас. Какъв Π²ΡŠΠΏΡ€ΠΎΡ възниква, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡ‚Π΅ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° с Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ? Какъв Π΅ слСдващият Π²ΡŠΠΏΡ€ΠΎΡ, ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΈ ΠΈΠ΄Π²Π° Π½Π° ΡƒΠΌ?

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

Но Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ слСдващият Π²ΡŠΠΏΡ€ΠΎΡ Π΅: ΠΊΠΎΠΈ заявки ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ‚ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ? ВоСст, Π½Π΅ Π΅ интСрСсно Π΄Π° Π³Π»Π΅Π΄Π°Ρ‚Π΅ процСситС, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ‚ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ. Ясно Π΅, Ρ‡Π΅ Π°ΠΊΠΎ хостватС Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, Ρ‚ΠΎ Ρ‚Π°ΠΌ Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΠΈ Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Π΅ само Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° рСсурси. Ако ΠΎΡ‚Π²ΠΎΡ€ΠΈΠΌ Top, Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΠΌ Ρ‚Π°ΠΌ списък с процСси Π² PostgreSQL, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅Ρ‰ΠΎ правят. ΠžΡ‚ Top Π½Π΅ Π΅ ясно ΠΊΠ°ΠΊΠ²ΠΎ правят.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ, трябва Π΄Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ΅ΠΌ Ρ‚Π΅Π·ΠΈ заявки, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ‚ Π½Π°ΠΉ-голямо Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ настройванСто Π½Π° заявкитС ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π΄Π°Π²Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΏΠΎΠ»Π·Π°, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ настройванСто Π½Π° конфигурацията Π½Π° PostgreSQL ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма, ΠΈΠ»ΠΈ Π΄ΠΎΡ€ΠΈ настройванСто Π½Π° Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π°. По моя ΠΏΡ€Π΅Ρ†Π΅Π½ΠΊΠ° – Ρ‚ΠΎΠ²Π° Π΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ 80-85-90 %. И Ρ‚ΠΎΠ²Π° става ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ. ЛСсно Π΅ Π΄Π° ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ‚Π΅ заявката, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ конфигурацията, Π΄Π° ΠΏΠ»Π°Π½ΠΈΡ€Π°Ρ‚Π΅ рСстарт, особСно Π°ΠΊΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° рСстартиратС Π±Π°Π·Π°Ρ‚Π° ΠΈΠ»ΠΈ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€. По-лСсно Π΅ просто Π΄Π° ΠΏΡ€Π΅Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ заявката ΠΈΠ»ΠΈ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ индСкс, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡŠΡ€ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ ΠΎΡ‚ Ρ‚Π°Π·ΠΈ заявка.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски
Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ, трябва Π΄Π° слСдим заявкитС ΠΈ тяхната адСкватност. Π”Π° Π²Π·Π΅ΠΌΠ΅ΠΌ Π΄Ρ€ΡƒΠ³ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³. И Ρ‚ΡƒΠΊ ΡΡŠΡ‰ΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, Ρ‡Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΡŠΡ‚ Π΅ Π½Π° Π½ΠΈΠ²ΠΎ. Има информация Π·Π° рСпликацията, информация Π·Π° пропускната способност, Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈΡ‚Π΅ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° рСсурси. Всичко Π΅ прСкрасно, Π½ΠΎ няма информация Π·Π° заявкитС. НС Π΅ ясно ΠΊΠ°ΠΊΠ²ΠΈ заявки сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π² Π½Π°ΡˆΠ°Ρ‚Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠ»ΠΊΠΎ дълго Π³ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ ΠΈ ΠΊΠΎΠ»ΠΊΠΎ ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ заявки ΠΈΠΌΠ°. Π’ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π²ΠΈΠ½Π°Π³ΠΈ трябва Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ Ρ‚Π°Π·ΠΈ информация.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

И Π·Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π·ΠΈ информация ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΌΠΎΠ΄ΡƒΠ»Π° pg_stat_statements. На основата Π½Π° Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°ΠΌΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ. НапримСр, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ информация Π·Π° Π½Π°ΠΉ-чСсто срСщанитС запитвания, Ρ‚.Π΅. Π·Π° Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π½Π°ΠΉ-чСсто. Π”Π°, ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° слСд Π΄Π΅ΠΏΠ»ΠΎΠΉΠΌΠ΅Π½Ρ‚ΠΈ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π° сС ΠΏΡ€Π΅Π³Π»Π΅Π΄Π° ΠΈ Π΄Π° сС Ρ€Π°Π·Π±Π΅Ρ€Π΅ Π΄Π°Π»ΠΈ няма някакъв скок Π² запитванията.

МоТСм Π΄Π° наблюдавамС Π½Π°ΠΉ-Π΄ΡŠΠ»Π³ΠΈΡ‚Π΅ запитвания, Ρ‚.Π΅. Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π½Π°ΠΉ-дълго. Π’Π΅ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Ρ‚ процСсора, консумират Π²Ρ…ΠΎΠ΄Π½ΠΎ-ΠΈΠ·Ρ…ΠΎΠ΄Π½ΠΈ рСсурси. Π‘ΡŠΡ‰ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΡ†Π΅Π½ΠΈΠΌ Ρ‚ΠΎΠ²Π° ΠΏΠΎ ΠΏΠΎΠ»Π΅Ρ‚Π°Ρ‚Π° total_time, mean_time, blk_write_time ΠΈ blk_read_time.

МоТСм Π΄Π° ΠΎΡ†Π΅Π½ΠΈΠΌ ΠΈ наблюдавамС Π½Π°ΠΉ-Ρ‚Π΅ΠΆΠΊΠΈΡ‚Π΅ запитвания ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° рСсурси, Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‡Π΅Ρ‚Π°Ρ‚ ΠΎΡ‚ диска, работят с ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΈΠ»ΠΈ, ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ, ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ Ρ‚Π΅ΠΆΠΊΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π·Π° запис.

МоТСм Π΄Π° ΠΎΡ†Π΅Π½ΠΈΠΌ ΠΈ Π½Π°ΠΉ-Ρ‰Π΅Π΄Ρ€ΠΈΡ‚Π΅ запитвания. Π’ΠΎΠ²Π° са запитвания, ΠΊΠΎΠΈΡ‚ΠΎ Π²Ρ€ΡŠΡ‰Π°Ρ‚ голямо количСство Ρ€Π΅Π΄ΠΎΠ²Π΅. НапримСр, Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ са Π·Π°Π±Ρ€Π°Π²ΠΈΠ»ΠΈ Π΄Π° Π·Π°Π΄Π°Π΄Π°Ρ‚ Π»ΠΈΠΌΠΈΡ‚. И Ρ‚ΠΎ просто Π²Ρ€ΡŠΡ‰Π° цялото ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ ΠΏΠΎ заявСнитС Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ.

И ΠΌΠΎΠΆΠ΅ΠΌ ΡΡŠΡ‰ΠΎ Π΄Π° наблюдавамС запитвания, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈΠ»ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски
И Π½ΠΈ останаха Ρ„ΠΎΠ½ΠΎΠ²ΠΈ процСси. Π€ΠΎΠ½ΠΎΠ²ΠΈΡ‚Π΅ процСси – Ρ‚ΠΎΠ²Π° Π½Π° ΠΏΡŠΡ€Π²ΠΎ място са Ρ‡Π΅ΠΊΠΏΠΎΠΈΠ½Ρ‚ΠΈΡ‚Π΅, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΡ‚ΠΎ Π³ΠΈ Π½Π°Ρ€ΠΈΡ‡Π°Ρ‚, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ, autovacuum ΠΈ рСпликация.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

Π”Ρ€ΡƒΠ³ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³. Има Π²ΠΊΠ»Π°Π΄ΠΊΠ° Maintenance отляво, ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ към нСя ΠΈ сС надявамС Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Π½Π΅Ρ‰ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ. Но Ρ‚ΡƒΠΊ ΠΈΠΌΠ° само Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° Π²Π°ΠΊΡƒΡƒΠΌΠ° ΠΈ ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° статистика, Π½ΠΈΡ‰ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅. Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π±Π΅Π΄Π½Π° информация, Π·Π°Ρ‚ΠΎΠ²Π° Π²ΠΈΠ½Π°Π³ΠΈ трябва Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ информация Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ работят Ρ„ΠΎΠ½ΠΎΠ²ΠΈΡ‚Π΅ процСси Π² Π½Π°ΡˆΠ°Ρ‚Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈ Π΄Π°Π»ΠΈ ΠΈΠΌΠ° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с тяхната Ρ€Π°Π±ΠΎΡ‚Π°.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

ΠšΠΎΠ³Π°Ρ‚ΠΎ Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ, трябва Π΄Π° ΠΏΠΎΠΌΠ½ΠΈΠΌ, Ρ‡Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ сбрасыват "ΠΌΡ€ΡŠΡΠ½ΠΈΡ‚Π΅" страници ΠΎΡ‚ областта Π½Π° ΡˆΠ°Ρ€Π΄ΠΈΠ·ΠΈΡ€Π°Π½Π°Ρ‚Π° ΠΏΠ°ΠΌΠ΅Ρ‚ Π½Π° диска, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π° Ρ‚ΠΎΡ‡ΠΊΠ°. И Ρ‚Π°Π·ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π²Π΅Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° ΠΊΠ°Ρ‚ΠΎ инструмСнт ΠΏΡ€ΠΈ Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅, Π°ΠΊΠΎ случайно PostgreSQL Π΅ Π±ΠΈΠ» Π·Π°Π²ΡŠΡ€ΡˆΠ΅Π½ ΠΏΠΎ Π°Π²Π°Ρ€ΠΈΠΉΠ΅Π½ Π½Π°Ρ‡ΠΈΠ½.

Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ, Π·Π° Π΄Π° сС Π·Π°ΠΏΠΈΡˆΠ°Ρ‚ всички β€žΠΌΡŠΡ€Ρ‚Π²ΠΈβ€œ страници Π½Π° диска, трябва Π΄Π° сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ извСстСн ΠΎΠ±Π΅ΠΌ запис. И ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π½Π° систСми с голям ΠΎΠ±Π΅ΠΌ ΠΏΠ°ΠΌΠ΅Ρ‚ – Ρ‚ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ. И Π°ΠΊΠΎ checkpoint-ΠΈΡ‚Π΅ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ чСсто Π·Π° ΠΊΡ€Π°Ρ‚ΡŠΠΊ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π», производитСлността Π½Π° диска Ρ‰Π΅ ΠΏΠ°Π΄Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΡ‚Π΅ заявки Ρ‰Π΅ страдат ΠΎΡ‚ нСдостиг Π½Π° рСсурси. Π’Π΅ Ρ‰Π΅ сС борят Π·Π° рСсурси ΠΈ производитСлността ΠΈΠΌ Ρ‰Π΅ бъдС Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½Π°.

Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ, Ρ‡Ρ€Π΅Π· pg_stat_bgwriter ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π΅Ρ‚Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° наблюдавамС броя Π½Π° случващитС сС checkpoint-ΠΈ. И Π°ΠΊΠΎ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π° 10-15-20 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ, Π·Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ час) ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ checkpoint-ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 3-4-5, Ρ‚ΠΎΠ²Π° Π²Π΅Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Врябва Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Π² конфигурацията ΠΊΠ°ΠΊΠ²ΠΎ причинява Ρ‚Π°ΠΊΠΎΠ²Π° мноТСство checkpoint-ΠΈ. МоТС Π±ΠΈ, някакъв голям запис сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°. По работния Ρ‚ΠΎΠ²Π°Ρ€ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΡ†Π΅Π½ΠΈΠΌ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈΡ‚Π΅ Π½Π° работния Ρ‚ΠΎΠ²Π°Ρ€ Π²Π΅Ρ‡Π΅ са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ. МоТСм Π΄Π° настройвамС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈΡ‚Π΅ ΠΈ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Ρ‚Π°ΠΊΠ°, Ρ‡Π΅ Ρ‚Π΅ Π΄Π° Π½Π΅ влияят Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ Π½Π° производитСлността Π½Π° заявкитС.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

ΠžΡ‚Π½ΠΎΠ²ΠΎ сС Π²Ρ€ΡŠΡ‰Π°ΠΌ към autovacuum, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Ρ‚ΠΎΠ²Π° Π΅ Π½Π΅Ρ‰ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ, ΠΊΠ°ΠΊΡ‚ΠΎ Π²Π΅Ρ‡Π΅ ΠΊΠ°Π·Π°Ρ…, ΠΌΠΎΠΆΠ΅ лСсно Π΄Π° повлияС ΠΊΠ°ΠΊΡ‚ΠΎ Π½Π° дисковата производитСлност, Ρ‚Π°ΠΊΠ° ΠΈ Π½Π° производитСлността Π½Π° заявкитС, Π·Π°Ρ‚ΠΎΠ²Π° Π²ΠΈΠ½Π°Π³ΠΈ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° оцСнявамС количСството Π½Π° autovacuum.

Броят Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° autovacuum Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½. По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ са Ρ‚Ρ€ΠΈ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅, Π°ΠΊΠΎ Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚ΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Ρ‚Ρ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠ°, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ Π² Π±Π°Π·Π°Ρ‚Π°, Ρ‚ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ autovacuum Π½Π΅ Π΅ настроСн ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ, трябва Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠΌ Π»ΠΈΠΌΠΈΡ‚ΠΈΡ‚Π΅, Π΄Π° ΠΏΡ€Π΅Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ настройкитС Π½Π° autovacuum ΠΈ Π΄Π° сС ΠΏΠΎΡ‚ΠΎΠΏΠΈΠΌ Π² конфигурацията.
Π’Π°ΠΆΠ½ΠΎ Π΅ Π΄Π° оцСнявамС ΠΊΠΎΠΈ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΡ†ΠΈ Π½Π° Π²Π°ΠΊΡƒΡƒΠΌΠ° работят. Или Π΅ стартиран ΠΎΡ‚ потрСбитСля, DBA Π΅ дошъл ΠΈ Π΅ стартирал някакъв Π²Π°ΠΊΡƒΡƒΠΌ, ΠΈ Ρ‚ΠΎΠ²Π° Π΅ създало Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅. ИмамС някакъв ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Или Π΅ броят Π½Π° Π²Π°ΠΊΡƒΡƒΠΌΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ намаляват броя Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅. Π—Π° някои вСрсии Π½Π° PostgreSQL – Ρ‚ΠΎΠ²Π° са ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Π΅ΠΆΠΊΠΈ Π²Π°ΠΊΡƒΡƒΠΌΠ½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. И Ρ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ лСсно Π΄Π° повлияят Π½Π° производитСлността, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΈΠ·Ρ‡ΠΈΡ‚Π°Ρ‚ цялата Ρ‚Π°Π±Π»ΠΈΡ†Π°, сканират всички Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π² Ρ‚Π°Π·ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°.

И, Ρ€Π°Π·Π±ΠΈΡ€Π° сС, ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° Π²Π°ΠΊΡƒΡƒΠΌΠΈΡ‚Π΅. Ако ΠΈΠΌΠ°ΠΌΠ΅ дълги Π²Π°ΠΊΡƒΡƒΠΌΠ½ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ работят дълго Π²Ρ€Π΅ΠΌΠ΅, Ρ‚ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΎΡ‚Π½ΠΎΠ²ΠΎ трябва Π΄Π° ΠΎΠ±ΡŠΡ€Π½Π΅ΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° конфигурацията Π½Π° Π²Π°ΠΊΡƒΡƒΠΌΠ° ΠΈ, ΠΌΠΎΠΆΠ΅ Π±ΠΈ, Π΄Π° ΠΏΡ€Π΅Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ настройкитС ΠΌΡƒ. Π—Π°Ρ‰ΠΎΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС появи ситуация, ΠΏΡ€ΠΈ която Π²Π°ΠΊΡƒΡƒΠΌΡŠΡ‚ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π°Π΄ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° дълго Π²Ρ€Π΅ΠΌΠ΅ (3-4 часа), Π½ΠΎ ΠΏΡ€Π΅Π· Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° Π²Π°ΠΊΡƒΡƒΠΌΠ° Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΎΡ‚Π½ΠΎΠ²ΠΎ сС Π΅ Π½Π°Ρ‚Ρ€ΡƒΠΏΠ°Π» голям ΠΎΠ±Π΅ΠΌ ΠΌΡŠΡ€Ρ‚Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅. И Ρ‰ΠΎΠΌ Π²Π°ΠΊΡƒΡƒΠΌΡŠΡ‚ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈ, Ρ‚ΠΎΠΉ ΠΎΡ‚Π½ΠΎΠ²ΠΎ трябва Π΄Π° Π²Π°ΠΊΡƒΠΌΠΈΡ€Π° Ρ‚Π°Π·ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°. И стигамС Π΄ΠΎ ситуация – Π±Π΅Π·ΠΊΡ€Π°Π΅Π½ Π²Π°ΠΊΡƒΡƒΠΌ. Π’ Ρ‚Π°ΠΊΡŠΠ² случай Π²Π°ΠΊΡƒΡƒΠΌΡŠΡ‚ Π½Π΅ успява Π΄Π° си ΡΠ²ΡŠΡ€ΡˆΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π°, ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ постСпСнно Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ Π΄Π° нарастват ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΈ, Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ ΠΎΠ±Π΅ΠΌΡŠΡ‚ Π½Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ Π² тях остава ΡΡŠΡ‰ΠΈΡΡ‚. Π—Π°Ρ‚ΠΎΠ²Π° ΠΏΡ€ΠΈ дълги Π²Π°ΠΊΡƒΡƒΠΌΠ½ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΈ Π²ΠΈΠ½Π°Π³ΠΈ Π³Π»Π΅Π΄Π°ΠΌΠ΅ конфигурацията ΠΈ сС ΠΎΠΏΠΈΡ‚Π²Π°ΠΌΠ΅ Π΄Π° я ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅, Π½ΠΎ Ρ‚Π°ΠΊΠ°, Ρ‡Π΅ Π΄Π° Π½Π΅ пострада производитСлността Π½Π° клиСнтскитС запитвания.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

Π‘Π΅Π³Π° практичСски няма инсталация Π½Π° PostgreSQL, която Π΄Π° няма ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Π° рСпликация. РСпликацията Π΅ ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π½Π° прСнос Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ мастСра към Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π°.

РСпликацията Π² PostgreSQL Π΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π° Ρ‡Ρ€Π΅Π· ΠΆΡƒΡ€Π½Π°Π» Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅. ΠœΠ°ΡΡ‚Π΅Ρ€Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΠΆΡƒΡ€Π½Π°Π» Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅. Π–ΡƒΡ€Π½Π°Π»ΡŠΡ‚ Π½Π° транзакцията ΠΏΡŠΡ‚ΡƒΠ²Π° ΠΏΠΎ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΎΡ‚ΠΎ съСдинСниС Π΄ΠΎ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π°, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ слСд Ρ‚ΠΎΠ²Π° сС Π²ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°. Всичко Π΅ просто.

Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ, Π·Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π° Π·Π°ΠΊΡŠΡΠ½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° рСпликацията сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ·Π³Π»Π΅Π΄ΡŠΡ‚ pg_stat_replication. Но с Π½Π΅Π³ΠΎ Π½Π΅ всичко Π΅ просто. Π’ вСрсия 10 ΠΈΠ·Π³Π»Π΅Π΄ΡŠΡ‚ ΠΏΡ€Π΅ΠΌΠΈΠ½Π° ΠΏΡ€Π΅Π· няколко измСнСния. ΠŸΡŠΡ€Π²ΠΎ, част ΠΎΡ‚ ΠΏΠΎΠ»Π΅Ρ‚Π°Ρ‚Π° бяха ΠΏΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½ΠΈ. И част ΠΎΡ‚ ΠΏΠΎΠ»Π΅Ρ‚Π°Ρ‚Π° бяха Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ. Π’ 10-Ρ‚Π° вСрсия сС появиха ΠΏΠΎΠ»Π΅Ρ‚Π°, ΠΊΠΎΠΈΡ‚ΠΎ позволяват Π΄Π° сС оцСнява Π·Π°ΠΊΡŠΡΠ½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° рСпликацията Π² сСкунди. Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ. ΠŸΡ€Π΅Π΄ΠΈ вСрсия 10 имашС Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° сС оцСнява Π·Π°ΠΊΡŠΡΠ½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° рСпликацията Π² Π±Π°ΠΉΡ‚ΠΎΠ²Π΅. Π’Π°Π·ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ остана ΠΈ Π² 10-Ρ‚Π° вСрсия, Ρ‚.Π΅. ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·Π±ΠΈΡ€Π°Ρ‚Π΅ ΠΊΠΎΠ΅ Π²ΠΈ Π΅ ΠΏΠΎ-ΡƒΠ΄ΠΎΠ±Π½ΠΎ – Π΄Π° оцСняватС Π·Π°ΠΊΡŠΡΠ½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π² Π±Π°ΠΉΡ‚ΠΎΠ²Π΅ ΠΈΠ»ΠΈ Π² сСкунди. Много Ρ…ΠΎΡ€Π° правят ΠΈ Π΄Π²Π΅Ρ‚Π΅.

Но всС ΠΏΠ°ΠΊ, Π·Π° Π΄Π° ΠΎΡ†Π΅Π½ΠΈΡ‚Π΅ Π·Π°ΠΊΡŠΡΠ½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° рСпликацията, трябва Π΄Π° Π·Π½Π°Π΅Ρ‚Π΅ позицията Π½Π° ΠΆΡƒΡ€Π½Π°Π»Π° Π² транзакцията. И Ρ‚Π΅Π·ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π½Π° ΠΆΡƒΡ€Π½Π°Π»Π° Π½Π° транзакцията са Π½Π°Π»ΠΈΡ‡Π½ΠΈ Π² ΠΈΠ·Π³Π»Π΅Π΄Π° pg_stat_replication. Условно ΠΊΠ°Π·Π°Π½ΠΎ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ функцията pg_xlog_location_diff(), Π·Π° Π΄Π° Π²Π·Π΅ΠΌΠ΅ΠΌ Π΄Π²Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π² ΠΆΡƒΡ€Π½Π°Π»Π° Π½Π° транзакцията. Π”Π° изчислим Π΄Π΅Π»Ρ‚Π°Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ тях ΠΈ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π·Π°ΠΊΡŠΡΠ½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° рСпликацията Π² Π±Π°ΠΉΡ‚ΠΎΠ²Π΅. Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈ просто.

Π’ 10-Ρ‚Π° вСрсия Ρ‚Π°Π·ΠΈ функция бСшС ΠΏΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½Π° Π½Π° pg_wal_lsn_diff(). Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚, във всички Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈΠ·Π³Π»Π΅Π΄ΠΈ ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΈ, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ сС ΡΡ€Π΅Ρ‰Π°ΡˆΠ΅ Π΄ΡƒΠΌΠ°Ρ‚Π° "xlog", тя бСшС Π·Π°ΠΌΠ΅Π½Π΅Π½Π° с "wal". Π’ΠΎΠ²Π° Π²Π°ΠΆΠΈ ΠΈ Π·Π° ΠΈΠ·Π³Π»Π΅Π΄ΠΈΡ‚Π΅, ΠΈ Π·Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅. Π’ΠΎΠ²Π° Π΅ Π΅Π΄Π½ΠΎ Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠ΅.

Плюс Π² 10-Ρ‚Π° вСрсия бяха Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‚ Π»Π°Π³. Π’ΠΎΠ²Π° Π΅ write lag, flush lag, replay lag. ВоСст, Ρ‚Π΅Π·ΠΈ Π½Π΅Ρ‰Π° Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° сС Π½Π°Π±Π»ΡŽΠ΄Π°Π²Π°Ρ‚. Ако Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π΅Π½ Π»Π°Π³, трябва Π΄Π° изслСдвамС Π·Π°Ρ‰ΠΎ Π΅ възникнал, ΠΎΡ‚ΠΊΡŠΠ΄Π΅ ΠΈΠ΄Π²Π° ΠΈ Π΄Π° Ρ€Π΅ΡˆΠΈΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

БистСмнитС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ практичСски са Π² Π΄ΠΎΠ±Ρ€ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅. ΠšΠΎΠ³Π°Ρ‚ΠΎ сС създава ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³, Ρ‚ΠΎΠΉ Π·Π°ΠΏΠΎΡ‡Π²Π° с систСмни ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ. Π’ΠΎΠ²Π° Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° процСсоритС, ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, swap, ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° ΠΈ диска. Но всС ΠΏΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ липсват ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅.

Ако с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° процСссора всичко Π΅ Π½Π°Ρ€Π΅Π΄, Ρ‚ΠΎ с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° диска ΠΈΠΌΠ° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. ОбикновСно Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΈ добавят информация Π·Π° пропускната способност. Вя ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Π² iops ΠΈΠ»ΠΈ Π±Π°ΠΉΡ‚ΠΎΠ²Π΅. Но Ρ‚Π΅ забравят Π·Π° латСнтността ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° дисковитС устройства. Π’ΠΎΠ²Π° са ΠΏΠΎ-Π²Π°ΠΆΠ½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½ΠΈ позволяват Π΄Π° ΠΎΡ†Π΅Π½ΠΈΠΌ ΠΊΠΎΠ»ΠΊΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π΅Π½ΠΈ са дисковСтС ΠΈ ΠΊΠΎΠ»ΠΊΠΎ забавят. Ако ΠΈΠΌΠ°ΠΌΠ΅ висока латСнтност, Ρ‚ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΈΠΌΠ° някакви ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с дисковСтС. Ако ΠΈΠΌΠ°ΠΌΠ΅ високо ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅, Ρ‚ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ дисковСтС Π½Π΅ сС справят. Π’ΠΎΠ²Π° са ΠΏΠΎ-качСствСни характСристики ΠΎΡ‚ пропускната способност.

Π£Ρ‡ΠΈΡ‚Π°ΠΉΠΊΠΈ, Ρ‡Π΅ Ρ‚Π°Π·ΠΈ статистика ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΠΎΠ»ΡƒΡ‡ΠΈ ΠΈ ΠΎΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма /proc, ΠΊΠ°ΠΊΡ‚ΠΎ сС ΠΏΡ€Π°Π²ΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° процСсоритС. Π—Π°Ρ‰ΠΎ Ρ‚Π°Π·ΠΈ информация Π½Π΅ сС добавя Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΈΡ‚Π΅, Π½Π΅ Π·Π½Π°ΠΌ. Но Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ Ρ‚ΠΎΠ²Π° Π² своя ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³.

Π‘ΡŠΡ‰ΠΎΡ‚ΠΎ Π²Π°ΠΆΠΈ ΠΈ Π·Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈΡ‚Π΅ интСрфСйси. Има информация Π·Π° пропускната способност Π½Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Π² ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, Π² Π±Π°ΠΉΡ‚ΠΎΠ²Π΅, Π½ΠΎ всС ΠΏΠ°ΠΊ липсва информация Π·Π° латСнтността ΠΈ липсва информация Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ, Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Ρ‚ΠΎΠ²Π° ΡΡŠΡ‰ΠΎ Π΅ ΠΏΠΎΠ»Π΅Π·Π½Π° информация.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

Π›ΡŽΠ±ΠΈΡ‚Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΈ ΠΈΠΌΠ°Ρ‚ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈ. И ΠΊΠ°ΠΊΡŠΠ²Ρ‚ΠΎ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅, Ρ‚ΠΎΠΉ Π²ΠΈΠ½Π°Π³ΠΈ Ρ‰Π΅ Π΅ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π΅Π½ спрямо ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ. Но всС ΠΏΠ°ΠΊ Ρ‚Π΅ сС Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚, добавят сС Π½ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π½ΠΎΠ²ΠΈ Π½Π΅Ρ‰Π°, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ Π½Π΅Ρ‰ΠΎ ΠΈ Π³ΠΎ подобрявайтС.

И Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° подобряватС, Π²ΠΈΠ½Π°Π³ΠΈ трябва Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ прСдстава ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π° прСдоставСната статистика ΠΈ ΠΊΠ°ΠΊ с нСя ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π΅ΡˆΠ°Π²Π°Ρ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ.

И няколко ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°:

  • Π’ΠΈΠ½Π°Π³ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° слСдитС наличността, Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ Ρ‚Π°Π±Π»Π° Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π±ΡŠΡ€Π·ΠΎ Π΄Π° ΠΎΡ†Π΅Π½ΠΈΡ‚Π΅, Ρ‡Π΅ всичко с Π±Π°Π·Π°Ρ‚Π° Π΅ Π½Π°Ρ€Π΅Π΄.
  • Π’ΠΈΠ½Π°Π³ΠΈ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ прСдстава ΠΊΠΎΠΉ Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ с Π²Π°ΡˆΠ°Ρ‚Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° отсССтС Π»ΠΎΡˆΠΈΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ.
  • Π’Π°ΠΆΠ½ΠΎ Π΅ Π΄Π° ΠΎΡ†Π΅Π½ΠΈΡ‚Π΅ ΠΊΠ°ΠΊ Ρ‚Π΅Π·ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ работят с Π΄Π°Π½Π½ΠΈΡ‚Π΅. Врябва Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ прСдстава Π·Π° вашия Ρ€Π°Π±ΠΎΡ‚Π΅Π½ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π΅Π½.
  • Π’Π°ΠΆΠ½ΠΎ Π΅ Π΄Π° ΠΎΡ†Π΅Π½ΠΈΡ‚Π΅ ΠΊΠ°ΠΊ сС Ρ„ΠΎΡ€ΠΌΠΈΡ€Π° Ρ‚ΠΎΠ·ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅Π½ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π΅Π½, с ΠΊΠ°ΠΊΠ²ΠΈ заявки. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° оцСняватС заявкитС, Π΄Π° Π³ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅, Π΄Π° Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΡ€Π°Ρ‚Π΅ ΠΈ Π΄Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Ρ‚Π΅ индСкси Π·Π° тях. Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½ΠΎ.
  • Π—Π°Π΄Π³Ρ€Π°Π½ΠΈΡ‡Π½ΠΈ процСси ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΎΠΊΠ°ΠΆΠ°Ρ‚ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ влияниС Π²ΡŠΡ€Ρ…Ρƒ клиСнтскитС заявки, Π·Π°Ρ‚ΠΎΠ²Π° Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° слСдитС, Π·Π° Π΄Π° Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ‚Π²ΡŠΡ€Π΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ рСсурси.
  • БистСмнитС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π²ΠΈ позволяват Π΄Π° ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Π·Π° ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠ°ΠΏΠ°Ρ†ΠΈΡ‚Π΅Ρ‚Π° Π½Π° Π²Π°ΡˆΠΈΡ‚Π΅ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ, Π·Π°Ρ‚ΠΎΠ²Π° Π΅ Π²Π°ΠΆΠ½ΠΎ ΡΡŠΡ‰ΠΎ Π΄Π° Π³ΠΈ прослСдяватС ΠΈ оцСняватС.

Основи Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π° PostgreSQL. АлСксСй ЛСсовски

Ако Ρ‚Π΅ΠΌΠ°Ρ‚Π° Π²ΠΈ интСрСсува, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° прослСдитС Ρ‚Π΅Π·ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²Π΅.
http://bit.do/stats_collector β€” Ρ‚ΠΎΠ²Π° Π΅ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½Π°Ρ‚Π° докумСнтация с ΠΊΠΎΠ»Π΅ΠΊΡ‚ΠΎΡ€ΠΈ Π½Π° статистика. Π’Π°ΠΌ ΠΈΠΌΠ° описаниС Π½Π° всички статистичСски ΠΈΠ·Π³Π»Π΅Π΄ΠΈ ΠΈ описаниС Π½Π° всички ΠΏΠΎΠ»Π΅Ρ‚Π°. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅, Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅. И Π½Π° тяхна основа Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ‚Π΅ своитС Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, Π΄Π° Π³ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Π² своитС ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° заявки:
http://bit.do/dataegret_sql
http://bit.do/lesovsky_sql

Π’ΠΎΠ²Π° Π΅ Π½Π°ΡˆΠΈΡΡ‚ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π΅Π½ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ моят собствСн. Π’ тях ΠΈΠΌΠ° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° заявки. Няма заявки ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° select* from Π½Π΅Ρ‰ΠΎ. Π’Π°ΠΌ Π²Π΅Ρ‡Π΅ ΠΈΠΌΠ° Π³ΠΎΡ‚ΠΎΠ²ΠΈ заявки с JOIN, с ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° интСрСсни Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ позволяват ΠΎΡ‚ сурови числа Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Ρ‡Π΅Ρ‚ΠΈΠΌΠΈ ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΈ стойности, Ρ‚.Π΅. Ρ‚ΠΎΠ²Π° са Π±Π°ΠΉΡ‚ΠΎΠ²Π΅, Π²Ρ€Π΅ΠΌΠ΅. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΈ Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Ρ‚Π΅, Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅, добавятС Π² своитС ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΈ ΠΈ Π΄Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Ρ‚Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π° тяхна основа.

Π’ΡŠΠΏΡ€ΠΎΡΠΈ

Π’ΡŠΠΏΡ€ΠΎΡ: Π’ΠΈΠ΅ ΠΊΠ°Π·Π°Ρ…Ρ‚Π΅, Ρ‡Π΅ няма Π΄Π° Ρ€Π΅ΠΊΠ»Π°ΠΌΠΈΡ€Π°Ρ‚Π΅ ΠΌΠ°Ρ€ΠΊΠΈ, Π½ΠΎ всС ΠΏΠ°ΠΊ ΠΌΠΈ Π΅ интСрСсно – Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅ си ΠΊΠ°ΠΊΠ²ΠΈ Ρ‚Π°Π±Π»Π° Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅?
ΠžΡ‚Π³ΠΎΠ²ΠΎΡ€: По Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ Π½Π°Ρ‡ΠΈΠ½. Понякога стигамС Π΄ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ Ρ‚ΠΎΠΉ Π²Π΅Ρ‡Π΅ ΠΈΠΌΠ° своСто ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³. И Π½ΠΈΠ΅ консултирамС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈ Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° си. Най-лошо Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ с ZabbiΡ…. Π—Π°Ρ‰ΠΎΡ‚ΠΎ Ρ‚ΠΎΠΉ няма Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° построи TopN-Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ. НиС сами ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Okmeter, Π·Π°Ρ‰ΠΎΡ‚ΠΎ консултирахмС Ρ‚Π΅Π·ΠΈ ΠΌΠΎΠΌΡ‡Π΅Ρ‚Π° ΠΏΠΎ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³. Π’Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ…Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π° PostgreSQL Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ тСхничСско Π·Π°Π΄Π°Π½ΠΈΠ΅. Пиша своя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΠ±ΠΈΡ€Π° Π΄Π°Π½Π½ΠΈ Ρ‡Ρ€Π΅Π· Prometheus ΠΈ Π³ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°. Grafana. Имам Π·Π°Π΄Π°Ρ‡Π° Π΄Π° направя свой СкспортСр Π² Prometheus ΠΈ слСд Ρ‚ΠΎΠ²Π° Π΄Π° Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌ всичко Π² Grafana.

Π’ΡŠΠΏΡ€ΠΎΡ: Има Π»ΠΈ някакви Π°Π½Π°Π»ΠΎΠ·ΠΈ Π½Π° AWR ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ … Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈ? Π—Π½Π°Π΅Ρ‚Π΅ Π»ΠΈ Π½Π΅Ρ‰ΠΎ Ρ‚Π°ΠΊΠΎΠ²Π°?
ΠžΡ‚Π³ΠΎΠ²ΠΎΡ€: Π”Π°, Π·Π½Π°ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ AWR, Ρ‚ΠΎΠ²Π° Π΅ страхотна Π²Π΅Ρ‰. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡ‚ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ слСдния ΠΌΠΎΠ΄Π΅Π». Π‘ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅ сС записват ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Π±Π°Π·ΠΎΠ²ΠΈ Π»ΠΈΠ½ΠΈΠΈ Π² ΡΡŠΡ‰ΠΈΡ PostgreSQL ΠΈΠ»ΠΈ Π² ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΈ ΠΏΠΎΡ‚ΡŠΡ€ΡΠΈΡ‚Π΅ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, Ρ‚Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚. Π•Π΄ΠΈΠ½ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° Ρ‚Π°ΠΊΠΎΠ²Π° Π½Π΅Ρ‰ΠΎ Π΅ Π½Π° Ρ„ΠΎΡ€ΡƒΠΌΠ° sql.ru Π² Ρ‚Π΅ΠΌΠ°Ρ‚Π° PostgreSQL. МоТС Π΄Π° Π³ΠΎ Ρ…Π²Π°Π½Π΅Ρ‚Π΅ Ρ‚Π°ΠΌ. Π”Π°, Ρ‚Π°ΠΊΠΈΠ²Π° Π½Π΅Ρ‰Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚, ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚. ОсвСн Ρ‚ΠΎΠ²Π° Π² pgCenter Π°Π· ΡΡŠΡ‰ΠΎ пиша Π½Π΅Ρ‰ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ ΡΡŠΡ‰ΠΎΡ‚ΠΎ.

P.S.1 Ако ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ postgres_exporter, ΠΊΠΎΠΉ Π΄Π°ΡˆΠ±ΠΎΡ€Π΄ ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅? Има няколко. Π’Π΅ Π²Π΅Ρ‡Π΅ са остарСли. МоТС Π±ΠΈ общността Ρ‰Π΅ създадС ΠΎΠ±Π½ΠΎΠ²Π΅Π½ шаблон?

P.S.2 ΠŸΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ… pganalyze, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π΅ собствСност Π½Π° SaaS, ΠΊΠΎΠΉΡ‚ΠΎ сС фокусира Π²ΡŠΡ€Ρ…Ρƒ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π° производитСлността ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ прСдлоТСния Π·Π° настройка.

Π‘Π°ΠΌΠΎ рСгистрирани ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° участват Π² Π°Π½ΠΊΠ΅Ρ‚Π°Ρ‚Π°. Π’Π»Π΅Π·Ρ‚Π΅, моля.

Кой self-hosted ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π° postgresql (с Π΄Π°ΡˆΠ±ΠΎΡ€Π΄) смятатС Π·Π° Π½Π°ΠΉ-Π΄ΠΎΠ±ΡŠΡ€?

  • 30,0%Zabbix + Π΄ΠΎΠ±Π°Π²ΠΊΠΈ ΠΎΡ‚ АлСксСй ЛСсовски ΠΈΠ»ΠΈ zabbix 4.4 ΠΈΠ»ΠΈ libzbxpgsql + zabbix libzbxpgsql + zabbix3

  • 0,0%https://github.com/lesovsky/pgcenter0

  • 0,0%https://github.com/pg-monz/pg_monz0

  • 20,0%https://github.com/cybertec-postgresql/pgwatch22

  • 20,0%https://github.com/postgrespro/mamonsu2

  • 0,0%https://www.percona.com/doc/percona-monitoring-and-management/conf-postgres.html0

  • 10,0%pganalyze Π΅ собствСност Π½Π° SaaS β€” Π½Π΅ ΠΌΠΎΠ³Π° Π΄Π° Π³ΠΎ изтрия.

  • 10,0%https://github.com/powa-team/powa1

  • 0,0%https://github.com/darold/pgbadger0

  • 0,0%https://github.com/darold/pgcluu0

  • 0,0%https://github.com/zalando/PGObserver0

  • 10,0%https://github.com/spotify/postgresql-metrics1

Гласуваха 10 ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ. ΠŸΡ€ΠΎΡ‚ΠΈΠ² сС Π²ΡŠΠ·Π΄ΡŠΡ€ΠΆΠ°Ρ…Π° 26 ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster