ИздаванС Π½Π° Π‘Π£Π‘Π” PostgreSQL 18

Π‘Π»Π΅Π΄ Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ бСшС ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΎ Π½ΠΎΠ²ΠΎ стабилно ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° Π‘Π£Π‘Π” PostgreSQL 18. АктуализациитС Π·Π° Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Ρ‰Π΅ ΠΈΠ·Π»ΠΈΠ·Π°Ρ‚ Π² ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ΅Ρ‚ Π³ΠΎΠ΄ΠΈΠ½ΠΈ Π΄ΠΎ Π½ΠΎΠ΅ΠΌΠ²Ρ€ΠΈ 2030 Π³ΠΎΠ΄ΠΈΠ½Π°. ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° PostgreSQL 13.x, Π½Π°ΠΉ-старата ΠΎΡ‚ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ΠΈΡ‚Π΅ вСрсии, Ρ‰Π΅ бъдС ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚Π΅Π½Π° Π½Π° 13 Π½ΠΎΠ΅ΠΌΠ²Ρ€ΠΈ.

Основни нововъвСдСния:

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ подсистСма Π·Π° асинхронСн Π²Ρ…ΠΎΠ΄/ΠΈΠ·Ρ…ΠΎΠ΄, позволяваща ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° пропускатСлната способност ΠΈ избавянС ΠΎΡ‚ закъснСния. ОсвСн унивСрсалната рСализация Π½Π° AIO (io_method=worker), Π½Π°Π»ΠΈΡ‡Π½Π° Π½Π° всички ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ, основана Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° няколко процСса-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ (ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ 3), Π² Linux ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡŠΡ‚ Π·Π° асинхронСн Π²Ρ…ΠΎΠ΄/ΠΈΠ·Ρ…ΠΎΠ΄ io_uring (io_method=io_uring), ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ ΠΎΡ‚ ядрото Π½Π° Linux 5.1. Асинхронният Π²Ρ…ΠΎΠ΄/ΠΈΠ·Ρ…ΠΎΠ΄ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅ Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ само Π·Π° ускоряванС Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма, ΠΊΠ°Ρ‚ΠΎ послСдоватСлно ΠΎΠ±Ρ…ΠΎΠΆΠ΄Π°Π½Π΅, сканиранС Π½Π° Π±ΠΈΡ‚ΠΎΠ²Π°Ρ‚Π° ΠΊΠ°Ρ€Ρ‚Π° Π½Π° индСкситС ΠΈ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° почистванС (vacuum). Π’ някои тСстовС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° AIO Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° производитСлността ΠΎΡ‚ 2 Π΄ΠΎ 3 ΠΏΡŠΡ‚ΠΈ. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π·Π° запис ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π² синхронСн Ρ€Π΅ΠΆΠΈΠΌ, Π·Π° Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½ΠΈ изискванията Π½Π° ACID.
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π΅ оптимизация Β«skip scanΒ» Π² ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½ΠΈ индСкси, Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° която ΠΈΠ½Π΄Π΅ΠΊΡΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π½Π΅ само Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΏΡŠΡ€Π²Π°Ρ‚Π° индСксирана ΠΊΠΎΠ»ΠΎΠ½Π° ΠΈ ΠΏΡŠΠ»Π½ΠΎΡ‚ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈΡ‚Π΅, Π½ΠΎ ΠΈ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠΎΠΎΡ‚Π΄Π΅Π»Π½ΠΎ Π½Π° останалитС индСксирани ΠΊΠΎΠ»ΠΎΠ½ΠΈ. НапримСр, ΠΏΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° ΠΏΡ€ΠΈ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° B-tree индСкс Π½Π°Π΄ ΠΊΠΎΠ»ΠΎΠ½ΠΈΡ‚Π΅ Β«(status, date)Β» ΠΈΠ½Π΄Π΅ΠΊΡΡŠΡ‚ сС ΠΏΡ€ΠΈΠ»Π°Π³Π°ΡˆΠ΅ само Π·Π° заявки, провСряващи ΠΏΠΎΠ»Π΅Ρ‚ΠΎ Β«statusΒ» ΠΈΠ»ΠΈ ΠΈ Π΄Π²Π΅Ρ‚Π΅ ΠΏΠΎΠ»Π΅Ρ‚Π° Β«statusΒ» ΠΈ Β«dateΒ», Π° ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π² заявката само Π½Π° ΠΏΠΎΠ»Π΅Ρ‚ΠΎ Β«dateΒ» сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°ΡˆΠ΅ сканиранС Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°. Π Π΅ΠΆΠΈΠΌΡŠΡ‚ Β«skip scanΒ» позволява Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ случаи Π΄Π° сС сканира ΠΈΠ½Π΄Π΅ΠΊΡΡŠΡ‚ ΠΏΡ€ΠΈ заявка само Π·Π° ΠΏΠΎΠ»Π΅Ρ‚ΠΎ Β«dateΒ». Π Π΅ΠΆΠΈΠΌΡŠΡ‚ сС ΠΏΡ€ΠΈΠ»Π°Π³Π° само Π·Π° индСкси Β«B-treeΒ» ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² заявката Π½Π° условСн ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Β«=Β» Π²ΡŠΡ€Ρ…Ρƒ индСксираното ΠΏΠΎΠ»Π΅, Π² ситуации, ΠΊΠΎΠ³Π°Ρ‚ΠΎ пропуснатото ΠΏΠΎΠ»Π΅ ΠΈΠΌΠ° ΠΌΠ°Π»ΠΊΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ стойности (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ оптимизацията Ρ‰Π΅ сработи, Π°ΠΊΠΎ ΠΏΠΎΠ»Π΅Ρ‚ΠΎ статус Β«statusΒ» ΠΈΠΌΠ° няколко фиксирани стойности).
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎ-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ индСкситС Π·Π° заявки, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ΠΈ конструкции Β«ORΒ» ΠΈ Β«IN (…)Β» Π² Π±Π»ΠΎΠΊΠ° Β«WHEREΒ», Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Ρ‚ производитСлността Π½Π° ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ускорСн Π΅ ΠΊΠΎΠ΄ΡŠΡ‚ Π·Π° сливанС Π½Π° Ρ…Π΅ΡˆΠΎΠ²Π΅ ΠΈ Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»Π½ΠΎ сортиранС ΠΏΡ€ΠΈ сливанС Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ).
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° паралСлизация Π½Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° индСкси GIN (ΠžΠ±ΠΎΠ±Ρ‰Π΅Π½ ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½ индСкс), ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° индСксирванС Π½Π° слоТни стойности, ΠΊΠ°Ρ‚ΠΎ масиви, ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ с пълСн тСкст ΠΈΠ»ΠΈ структури JSON.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° създаванС Π½Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ прСдставяния ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ Π·Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ с ΡƒΠ½ΠΈΠΊΠ°Π»Π½ΠΈ индСкси, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ структура B-tree.
  • ПовишСна Π΅ ΠΎΠ±Ρ‰Π°Ρ‚Π° производитСлност Π½Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈΡ‚Π΅ ΠΏΡ€ΠΈ заявки, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ с ΠΌΠ½ΠΎΠ³ΠΎΠ±Ρ€ΠΎΠΉΠ½ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° са внСсСни подобрСния Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° заявки към Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ускоряват отстраняванСто Π½Π° Π½Π΅ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ сСкции ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с обСдиняванС (JOIN).
  • УскорСни са ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ с тСкст, ΠΊΠ°Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ Π² Π³ΠΎΡ€Π΅Π½/Π΄ΠΎΠ»Π΅Π½ Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€. Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ Ρ€Π΅ΠΆΠΈΠΌ PG_UNICODE_FAST Π·Π° ускоряванС Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° свойства Π½Π° мСстополоТСниСто Π½Π° Unicode символитС.
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° статистика Π½Π° планиращия ΠΌΠΎΠ΄ΡƒΠ» слСд ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΈ вСрсии Π½Π° PostgreSQL. Π’ΠΎΠ²Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ позволява Π΄Π° сС ΠΈΠ·Π±Π΅Π³Π½Π΅ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° рСсурсоСмка опСрация Β«ANALYZEΒ» слСд стартиранС Π½Π° Π½ΠΎΠ²Π° вСрсия, Π΄ΠΎ Π·Π°Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° която сС наблюдава спад Π² производитСлността Π½Π° Π‘Π£Π‘Π”.
  • ПовишСна Π΅ производитСлността Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° pg_upgrade, която сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° автоматизация Π½Π° ΠΏΡ€Π΅Ρ…ΠΎΠ΄Π° към Π½ΠΎΠ²Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½Π° вСрсия Π½Π° PostgreSQL. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅ са особСно Π²ΠΈΠ΄ΠΈΠΌΠΈ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π‘Π”, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ΠΈ голям Π±Ρ€ΠΎΠΉ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, ΠΊΠ°Ρ‚ΠΎ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ ΠΈ послСдоватСлности. Π—Π° ускоряванС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° pg_upgrade Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ Ρ„Π»Π°Π³ Β«β€”jobs NΒ» Π·Π° паралСлизация Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈΡ‚Π΅ Π² N ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΈ Ρ„Π»Π°Π³ Β«β€”swapΒ» Π·Π° замяна Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ с Π΄Π°Π½Π½ΠΈ, Π±Π΅Π· Π΄Π° сС правят Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ, ΠΊΠ»ΠΎΠ½ΠΈΡ€Π°Π½Π΅ ΠΈΠ»ΠΈ ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ, Ρ‡ΠΈΠΈΡ‚ΠΎ стойности сС изчисляват Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° заявкитС, Π±Π΅Π· Π΄Π° сС Π·Π°ΠΏΠ°Π·Π²Π°Ρ‚ Π½Π° диск. Ако Π² изявлСниСто β€žCREATE TABLEβ€¦β€œ Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ Π΅ посочСно само ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΎΡ‚ΠΎ слово β€žGENERATEDβ€œ Π±Π΅Π· уточняванС Π½Π° Ρ‚ΠΈΠΏΠ° (STORED ΠΈΠ»ΠΈ VIRTUAL), Ρ‚ΠΎ новият Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ сС ΠΏΡ€ΠΈΠ»Π°Π³Π° ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ вмСсто старата рСализация. Π’ старата рСализация стойноститС сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ…Π° ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ β€žINSERTβ€œ ΠΈΠ»ΠΈ β€žUPDATEβ€œ ΠΈ сС Π·Π°ΠΏΠ°Π·Π²Π°Ρ…Π° Π½Π° диск Π·Π° послСдваща ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°. ΠΠ΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΠΊ Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈΡ‚Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ Π΅ Π½Π΅Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π² индСкси, Π° прСдимството Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° нормализация ΠΈ промяна Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅ (Π°ΠΊΡ‚ΡƒΠ°Π»Π½ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с Π΄Π°Π½Π½ΠΈ JSON). Π©ΠΎ сС отнася Π΄ΠΎ класичСскитС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ, Π² Π½ΠΎΠ²ΠΎΡ‚ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π΅ осигурСна ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° логичСска рСпликация.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅ INSERT, UPDATE, DELETE ΠΈ MERGE Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈ (OLD) ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈ (CURRENT) стойности Π² ΠΈΠ·Ρ€Π°Π·Π° RETURNING. НапримСр, β€žUPDATE… RETURNING WITH (OLD AS o, NEW AS n) o.*, n.*.β€œ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ функция uuidv7() Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° случайни ΡƒΠ½ΠΈΠΊΠ°Π»Π½ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ UUIDv7. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ старата функция Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° UUID (gen_random_uuid), която сСга Π΅ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ Π½Π°Π»ΠΈΡ‡Π½Π° ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Ρ‚ΠΎ uuidv4(), Π² UUIDv7 освСн случайна стойност сС Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΈ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅. НаличиСто Π½Π° ΠΏΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ΠΈ части Π² стойността UUID (ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ 12 символа β€” Π΅ΠΏΠΎΡ…Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅, Π° слСдващитС 18 β€” случайна стойност) повишава СфСктивността Π½Π° сортиранС ΠΈ индСксиранС, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»Π½ΠΎ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ UUID ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° ΠΏΡŠΡ€Π²ΠΈΡ‡Π½ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅Ρ‚Π΅, създадСни Π² Π±Π»ΠΈΠ·ΠΊΠΎ Π²Ρ€Π΅ΠΌΠ΅, сС поставят Π΅Π΄ΠΈΠ½ Π΄ΠΎ Π΄Ρ€ΡƒΠ³ Π² индСкса).
  • Π’ опСрацията β€žLIKEβ€œ Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° съвпадСния с тСкст, Π² ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π½Π΅Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€Π°Π½ΠΈ свойства Π½Π° локализацията β€žcollationβ€œ, позволяващи съвпадСния с ΠΎΠ³Π»Π΅Π΄ Π½Π° смисъла Π½Π° символитС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ сравнСниС ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ сС Π²Π·Π΅ΠΌΠ° ΠΏΠΎΠ΄ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅Ρ‚ΠΎ). Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ функция CASEFOLD Π·Π° промяна Π½Π° Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π° Π½Π° символитС с ΠΎΠ³Π»Π΅Π΄ Π½Π° свойствата Π½Π° локализацията β€žcollationβ€œ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, някои символи ΠΈΠΌΠ°Ρ‚ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π½Π° ΠΌΠ°Π»ΠΊΠΈ Π±ΡƒΠΊΠ²ΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ сравнСниС изискват ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ Π² Π³Π»Π°Π²Π½ΠΈ Π±ΡƒΠΊΠ²ΠΈ, Π° Π½Π΅ Π² ΠΌΠ°Π»ΠΊΠΈ).
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ ограничСния (temporal constraint). Π’ стойноститС Β«PRIMARY KEYΒ» ΠΈ Β«UNIQUEΒ» Π·Π° добавянС Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ ограничСния слСдва Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ·Ρ€Π°Π·ΡŠΡ‚ Β«WITHOUT OVERLAPSΒ», Π° Π² стойността Β«FOREIGN KEYΒ» β€” ΠΈΠ·Ρ€Π°Π·ΡŠΡ‚ PERIOD. НапримСр, ΠΏΡ€ΠΈ опрСдСлянС Π½Π° основни ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅Ρ‚Π΅ с ΠΏΡ€ΠΈΠΏΠΎΠΊΡ€ΠΈΠ²Π°Ρ‰ΠΈ сС ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΈ ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«CREATE FOREIGN TABLE … LIKE commandΒ», Π·Π° Π΄Π° сС създадС схСма Π½Π° Π²ΡŠΠ½ΡˆΠ½Π°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π»ΠΎΠΊΠ°Π»Π½Π°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ към Π‘Π£Π‘Π”, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ удостовСряванС Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° OAUTH 2.0 с ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° Ρ‚ΠΎΠΊΠ΅Π½ Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ вмСсто ΠΏΠ°Ρ€ΠΎΠ»Π°. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° OAUTH позволява Π΄Π° Π½Π΅ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ ΠΏΠ°Ρ€ΠΎΠ»ΠΈ Π² Π‘Π”, Π° Π΄Π° сС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Ρ‡Ρ€Π΅Π· външни услуги, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ ΠΊΠ°Ρ‚ΠΎ Π΄Π²ΡƒΡ„Π°ΠΊΡ‚ΠΎΡ€Π½ΠΎ удостовСряванС ΠΈ Π΅Π΄ΠΈΠ½Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏ (SSO).
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ функция ssl_tls13_ciphers(), Ρ‡Ρ€Π΅Π· която ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ списък с допустимитС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ Π·Π° ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅ ΠΏΡ€ΠΈ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ с ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» TLSv1.3.
  • ΠŸΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ°Ρ‚Π° Π·Π° удостовСряванС с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ md5 Π·Π° Ρ…Π΅ΡˆΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ°Ρ€ΠΎΠ»ΠΈ Π΅ класифицирана ΠΊΠ°Ρ‚ΠΎ остаряла ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½Π° Π·Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅. ВмСсто md5 сС ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° Π΄Π° сС ΠΏΡ€ΠΈΠ»Π°Π³Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ SCRAM (SCRAM-SHA-256), въвСдСн Π² PostgreSQL 10. ОсвСн Ρ‚ΠΎΠ²Π° сС отбСлязва Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° прСнасочванС Π½Π° удостовСряванС Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° SCRAM ΠΏΡ€ΠΈ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Ρ‡Ρ€Π΅Π· postgres_fdw ΠΈ dblink към външни PostgreSQL ΡΡŠΡ€Π²ΡŠΡ€ΠΈ.
  • ΠŸΡ€ΠΈ изпълнСниС Π½Π° опСрацията Β«EXPLAIN ANALYZEΒ» сС осигурява ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° информация Π·Π° броя ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π² индСкситС ΠΏΡ€ΠΈ сканиранС Π½Π° индСкса ΠΈ броя Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠΈΡ‚Π΅ Π΄ΠΎ Π±ΡƒΡ„Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡ€ΠΈ изпълнСниС Π½Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ. Π’ ΠΈΠ·Ρ…ΠΎΠ΄Π° Β«EXPLAIN ANALYZE VERBOSEΒ» Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° статистика Π·Π° CPU, WAL-ΠΆΡƒΡ€Π½Π°Π»Π° ΠΈ интСнзивността Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅. Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° pg_stat_all_tables са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ свСдСния Π·Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ, ΠΈΠ·Ρ€Π°Π·Ρ…ΠΎΠ΄Π²Π°Π½ΠΎ Π·Π° опСрацията VACUUM ΠΈ Π°Π½Π°Π»ΠΈΠ· Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π΅Π½Π° Π΅ статистика Π·Π° интСнзивността Π½Π° Π²Ρ…ΠΎΠ΄Π½ΠΎ-ΠΈΠ·Ρ…ΠΎΠ΄Π½ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° WAL-ΠΆΡƒΡ€Π½Π°Π»Π° ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ. Π’ pg_stat_subscription_stats ΠΈ Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° информация с диагностика Π½Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈ изпълнСниС Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π° запис ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° логичСска рСпликация.
  • Π’ Π½ΠΎΠ²ΠΈΡ‚Π΅ инсталации ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΈ суми Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° цСлостта Π½Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ. Π—Π° Π΄Π° сС ΠΎΡ‚ΠΌΠ΅Π½ΠΈ Ρ‚ΠΎΠ²Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΏΡ€ΠΈ стартиранС Π½Π° initdb Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС посочи опция Β«β€”no-data-checksumsΒ».
  • Π’ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° pg_createsubscriber Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ Ρ„Π»Π°Π³ Β«β€”allΒ» Π·Π° създаванС Π½Π° логичСски Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ с Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π° всички Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ.
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π΅ Π½ΠΎΠ²Π° вСрсия (3.2) Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° взаимодСйствиС Π½Π° външни прилоТСния със Π‘Π£Π‘Π” ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° libpq. ΠŸΠΎΡΠ»Π΅Π΄Π½ΠΎΡ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π΅ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΎ Π² PostgreSQL 7.4 (2003 Π³ΠΎΠ΄ΠΈΠ½Π°). Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° libpq ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π° Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° вСрсия 3.0.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

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