15%

Alexhost ви дава ТСлания

Π˜Π·Π²ΡŠΡ€ΡˆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡƒΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈ спСчСлСтС Π½Π°Π³Ρ€Π°Π΄ΠΈ

01.11.2024

Π ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ Π·Π° PostgreSQL

PostgreSQL Π΅ ΠΌΠΎΡ‰Π½Π° систСма Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ (Π‘Π£Π‘Π”) с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄, извСстна със своята стабилност, надСТдност ΠΈ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Вя сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡˆΠΈΡ€ΠΎΠΊΠΎ Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΎΠ±Π΅ΠΌΠΈ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΈ ΠΈ Π΅Π·ΠΈΡ†ΠΈ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅. Π’ Ρ‚Π°Π·ΠΈ статия Ρ‰Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΎΠ±Ρ‰ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° PostgreSQL, Π½Π΅ΠΉΠ½ΠΈΡ‚Π΅ основни характСристики, инсталация ΠΈ основна ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°

1. Π Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° PostgreSQL

PostgreSQL Π΅ ΠΎΠ±Π΅ΠΊΡ‚Π½ΠΎ-Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π° систСма Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ (ORDBMS), която Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ с Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° JSON, потрСбитСлски Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΈ Π΅Π·ΠΈΡ†ΠΈ. Вя Π΅ извСстна със своята надСТдност ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° с Π»Π΅ΠΊΠΎΡ‚Π° слоТни заявки ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ

2. Основни характСристики Π½Π° PostgreSQL

2.1. Π Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΈ

  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° мноТСство Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΈ.
  • Π’ΡŠΡ€ΡΠ΅Π½Π΅ Π² пълСн тСкст.

2.2. Π Π°Π·ΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚

  • ΠŸΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΈ: PostgreSQL позволява Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π΄Π° ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ потрСбитСлски Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΈ, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ мноТСство Π΅Π·ΠΈΡ†ΠΈ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ (PL/pgSQL, PL/Perl, PL/Python ΠΈ Π΄Ρ€.).
  • Π Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ.

2.3. Π‘ΠΈΠ»Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΡΡŠΡ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ

  • MVCC (Multi-Version Concurrency Control).
  • ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅: ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ACID (Atomicity, Consistency, Isolation, Durability) свойства, ΠΊΠΎΠΈΡ‚ΠΎ осигуряват Π½Π°Π΄Π΅ΠΆΠ΄Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅.

3. Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° PostgreSQL

Π—Π° Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π° с PostgreSQL, трябва Π΄Π° я инсталиратС Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° систСма. Π’ΠΎΠ²Π° Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ описва процСса Π½Π° инсталиранС Π² Ubuntu

Π‘Ρ‚ΡŠΠΏΠΊΠ° 1: АктуализиранС Π½Π° индСкса Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°

ΠžΡ‚Π²ΠΎΡ€Π΅Ρ‚Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° си ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°ΠΉΡ‚Π΅ индСкса Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°

sudo apt update
#

Π‘Ρ‚ΡŠΠΏΠΊΠ° 2: Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°ΠΉΡ‚Π΅ PostgreSQL

Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°ΠΉΡ‚Π΅ PostgreSQL, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅ слСдната ΠΊΠΎΠΌΠ°Π½Π΄Π°

sudo apt install postgresql postgresql-contrib

Π‘Ρ‚ΡŠΠΏΠΊΠ° 3: Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΠΉΡ‚Π΅ PostgreSQL

Π‘Π»Π΅Π΄ инсталацията стартирайтС услугата PostgreSQL ΠΈ я Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΠΉΡ‚Π΅ Π΄Π° сС стартира ΠΏΡ€ΠΈ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅

sudo systemctl start postgresql sudo systemctl enable postgresql

Π‘Ρ‚ΡŠΠΏΠΊΠ° 4: ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° инсталацията

Π—Π° Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅ Π΄Π°Π»ΠΈ PostgreSQL Π΅ стартирана, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ слСдната ΠΊΠΎΠΌΠ°Π½Π΄Π°

sudo systemctl status postgresql
#

4. Основно използванС на PostgreSQL

Π‘Ρ‚ΡŠΠΏΠΊΠ° 1: Π”ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ PostgreSQL

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†Π° Π½Π° PostgreSQL, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ слСдната ΠΊΠΎΠΌΠ°Π½Π΄Π°

sudo -i -u postgres
#

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° стартирайтС ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°Ρ‚Π° Π½Π° PostgreSQL

psql

Π‘Ρ‚ΡŠΠΏΠΊΠ° 2: БъздаванС Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ

Π—Π° Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ Π½ΠΎΠ²Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Ρ‚Π΅ слСдната ΠΊΠΎΠΌΠ°Π½Π΄Π° Π² ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°Ρ‚Π° Π½Π° PostgreSQL

CREATE DATABASE mydatabase;
#

Π‘Ρ‚ΡŠΠΏΠΊΠ° 3: БъздаванС Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ слСдната ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π·Π° Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ Π½ΠΎΠ² ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» ΠΈ Π΄Π° ΠΌΡƒ Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΏΠ°Ρ€ΠΎΠ»Π°

CREATE USER myuser WITH PASSWORD 'mypassword';
#

Π‘Ρ‚ΡŠΠΏΠΊΠ° 4: ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡΠ½Π΅ Π½Π° ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ

Π—Π° Π΄Π° прСдоставитС Π½Π° потрСбитСля Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Ρ‚Π΅ слСдната ΠΊΠΎΠΌΠ°Π½Π΄Π°

Grant all permissions of the mydatabase database to myuser;

Π‘Ρ‚ΡŠΠΏΠΊΠ° 5: Π‘Π²ΡŠΡ€Π·Π²Π°Π½Π΅ с Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ

Π—Π° Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ΅Ρ‚Π΅ с Π½ΠΎΠ²ΠΎΡΡŠΠ·Π΄Π°Π΄Π΅Π½Π°Ρ‚Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΈΠ·Π»Π΅Π·Ρ‚Π΅ ΠΎΡ‚ ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°Ρ‚Π° Π½Π° PostgreSQL (Π²ΡŠΠ²Π΅Π΄Π΅Ρ‚Π΅ q), слСд ΠΊΠΎΠ΅Ρ‚ΠΎ Π²Π»Π΅Π·Ρ‚Π΅ ΠΎΡ‚Π½ΠΎΠ²ΠΎ с потрСбитСля

psql -U myuser -d mydatabase
#

5. Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

PostgreSQL Π΅ ΠΌΠΎΡ‰Π½Π° ΠΈ гъвкава Π‘Π£Π‘Π”, която прСдоставя ΡƒΡΡŠΠ²ΡŠΡ€ΡˆΠ΅Π½ΡΡ‚Π²Π°Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° слоТни масиви ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ. ΠšΠ°Ρ‚ΠΎ слСдватС ΡΡ‚ΡŠΠΏΠΊΠΈΡ‚Π΅, описани Π² Ρ‚Π°Π·ΠΈ статия, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° инсталиратС ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ PostgreSQL Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ. Π Π΅Π΄ΠΎΠ²Π½ΠΎ Π½Π°Π±Π»ΡŽΠ΄Π°Π²Π°ΠΉΡ‚Π΅ производитСлността Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΠΏΡ€ΠΈΠ»Π°Π³Π°ΠΉΡ‚Π΅ Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΈΡ‚Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Π·Π° Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€Π°Π½Π΅ ΠΈ сигурност, Π·Π° Π΄Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°Ρ‚Π΅ надСТдността Π½Π° Π²Π°ΡˆΠΈΡ‚Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ.

15%

Alexhost ви дава ТСлания

Π˜Π·Π²ΡŠΡ€ΡˆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡƒΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈ спСчСлСтС Π½Π°Π³Ρ€Π°Π΄ΠΈ