ΠΠΎΠΊΠ»Π°Π΄ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Ρ Π½ΡΠΊΠΎΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΡΠ΅ ΡΠ»Π΅Π΄ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° SQL Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡΡΠ°, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΡΠ° ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ Π½Π° Π΄Π΅Π½, Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ PostgreSQL ΡΡΡΠ²ΡΡΠΈ - ΡΡΠΎΡΠΈΡΠΈ.
ΠΠ°ΠΊΠ²ΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΠΌΠ΅ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°ΠΊΡΠ² ΠΎΠ±Π΅ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ ΠΊΠ°ΠΊ ΡΠΎΠ²Π° ΠΎΠ±Π»Π΅ΠΊΡΠ°Π²Π° ΠΆΠΈΠ²ΠΎΡΠ° Π½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ.

ΠΠΎΠΌΡ Π΅ Π»ΡΠ±ΠΎΠΏΠΈΡΠ΅Π½ Π°Π½Π°Π»ΠΈΠ·ΡΡ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° SQL Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΡΠΈΠΏΠΈΡΠ½ΠΈ DBA Π·Π°Π΄Π°ΡΠΈ Π² PostgreSQL - ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎ ΡΠ°Π·ΠΈ ΡΠ΅ΠΌΠ°.

ΠΠ°Π·Π²Π°ΠΌ ΡΠ΅ ΠΠΈΡΠΈΠ» ΠΠΎΡΠΎΠ²ΠΈΠΊΠΎΠ², ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π°ΠΌ . Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΌ ΡΠ΅ Π² ΡΠ°Π±ΠΎΡΠ°ΡΠ° Ρ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π² Π½Π°ΡΠ°ΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ.
ΠΠ½Π΅Ρ ΡΠ΅ Π²ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π²Π°ΠΌΠ΅ Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ΡΠΈΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΠΉΡΠΎ Π½Π΅ ΠΊΠ°ΡΠ°Π΅ ΡΠ°ΠΌΠΎ "ΡΠ°Π·ΠΊΡΠΈΠ²Π°Π½Π΅ΡΠΎ" Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° Π΅Π΄Π½ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅, Π° ΠΌΠ°ΡΠΎΠ²ΠΎ. ΠΠΎΠ³Π°ΡΠΎ Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡΡΠ° ΡΠ° ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΠΌ Π½ΡΠΊΠ°ΠΊΠ²ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΎΠ·ΠΈ Π³ΠΎΠ»ΡΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
ΠΡΡΡΠ½ΠΎΡΡ, Β«Π’Π΅Π½Π·ΠΎΡΒ» Π·Π° ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Π½Π°ΡΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ Π΅ : ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½Π° ΡΠΎΡΠΈΠ°Π»Π½Π° ΠΌΡΠ΅ΠΆΠ°, ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π° Π²ΠΈΠ΄Π΅ΠΎΠ²ΡΡΠ·ΠΊΠ°, Π·Π° Π²ΡΡΡΠ΅ΡΠ΅Π½ ΠΈ Π²ΡΠ½ΡΠ΅Π½ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠΎΠ±ΠΎΡΠΎΡ, ΡΡΠ΅ΡΠΎΠ²ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠΊΠ»Π°Π΄ΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ,β¦ Π’ΠΎΠ΅ΡΡ, Π½Π΅ΡΠΎ ΠΊΠ°ΡΠΎ Β«ΠΌΠ΅Π³Π°ΠΊΠΎΠΌΠ±Π°ΠΉΠ½Β» Π·Π° ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π±ΠΈΠ·Π½Π΅ΡΠ°, Π² ΠΊΠΎΠΉΡΠΎ ΠΈΠΌΠ° Π½Π°Π΄ 100 ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²ΡΡΡΠ΅ΡΠ½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠ° Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°Ρ ΠΈ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°Ρ Π½ΠΎΡΠΌΠ°Π»Π½ΠΎ - ΠΈΠΌΠ°ΠΌΠ΅ 10 ΡΠ΅Π½ΡΡΠΎΠ²Π΅ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π² ΡΡΠ»Π° ΡΡΡΠ°Π½Π°, Π² ΡΡΡ - Π½Π°Π΄ 1000 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ.
Π‘ PostgreSQL ΡΠ°Π±ΠΎΡΠΈΠΌ ΠΎΡ 2008 Π³ΠΎΠ΄ΠΈΠ½Π° ΠΈ ΡΠΌΠ΅ Π½Π°ΡΡΡΠΏΠ°Π»ΠΈ Π³ΠΎΠ»ΡΠΌ ΠΎΠ±Π΅ΠΌ ΠΎΡ Π΄Π°Π½Π½ΠΈ - ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈ, ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈ, Π°Π½Π°Π»ΠΈΡΠΈΡΠ½ΠΈ, Π΄Π°Π½Π½ΠΈ ΠΎΡ Π²ΡΠ½ΡΠ½ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ - ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 400TB.Π‘Π°ΠΌΠΎ Π² βΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡβ ΠΈΠΌΠ°ΠΌΠ΅ ΠΎΠΊΠΎΠ»ΠΎ 250 ΡΡΡΠ²ΡΡΠ°, Π° ΠΎΠ±ΡΠΎ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ»Π΅Π΄ΠΈΠΌ - ΠΎΠΊΠΎΠ»ΠΎ 1000.

SQL Π΅ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π΅Π½ Π΅Π·ΠΈΠΊ. ΠΠΈΠ΅ ΠΎΠΏΠΈΡΠ²Π°ΡΠ΅ Π½Π΅ "ΠΊΠ°ΠΊ" Π½Π΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ, Π° "ΠΊΠ°ΠΊΠ²ΠΎ" ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅. Π‘Π£ΠΠ-ΡΠΎ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π·Π½Π°Π΅ ΠΊΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ JOIN - ΠΊΠ°ΠΊ Π΄Π° ΡΠ²ΡΡΠΆΠ΅ Π²Π°ΡΠΈΡΠ΅ ΡΠ°Π±Π»ΠΈΡΠΈ, ΠΊΠ°ΠΊΠ²ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ Π΄Π° Π½Π°Π»ΠΎΠΆΠΈ, ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΌΠΈΠ½Π΅ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°, ΠΊΠ°ΠΊΠ²ΠΎ Π½Π΅...
ΠΡΠΊΠΎΠΈ Π‘Π£ΠΠ ΠΏΡΠΈΠ΅ΠΌΠ°Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ: "ΠΠ΅, ΡΠ²ΡΡΠ·Π²Π°ΠΉ ΡΠ΅Π·ΠΈ Π΄Π²Π΅ ΡΠ°Π±Π»ΠΈΡΠΈ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠ΅Π΄", Π½ΠΎ PostgreSQL Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΠΎΠ²Π°. Π’ΠΎΠ²Π° Π΅ ΡΡΠ·Π½Π°ΡΠ΅Π»Π½Π° ΠΏΠΎΠ·ΠΈΡΠΈΡ Π½Π° Π²ΠΎΠ΄Π΅ΡΠΈΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ: "ΠΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠ° Π½Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡΡΠ°, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π΄Π° ΡΠ°Π·ΡΠ΅ΡΠΈΠΌ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ."
ΠΠΎ, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ PostgreSQL Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ βΠΎΡΠ²ΡΠ½β, ΡΠΎΠΉ ΠΎΡΠ»ΠΈΡΠ½ΠΎ Π΄Π°Π²Π° Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΡΡΠ°Π²Π° βΠ²ΡΡΡΠ΅β, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠ΅ Π·Π°ΡΠ²ΠΊΠ°ΡΠ° ΡΠΈ ΠΈ ΠΊΡΠ΄Π΅ Π²ΡΠ·Π½ΠΈΠΊΠ²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅.

ΠΠ±ΡΠΎ Π²Π·Π΅ΡΠΎ, Ρ ΠΊΠ°ΠΊΠ²ΠΈ ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΈΠ΄Π²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ [ΠΊ DBA]? βΠΠ·ΠΏΡΠ»Π½ΠΈΡ
ΠΌΠ΅ Π·Π°ΡΠ²ΠΊΠ° ΠΈ Π²ΡΠΈΡΠΊΠΎ Π΅ Π±Π°Π²Π½ΠΎ, Π²ΡΠΈΡΠΊΠΎ Π΅ Π·Π°ΠΌΡΡΠ·Π½Π°Π»ΠΎ, Π½Π΅ΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π°β¦ ΠΠ°ΠΊΠ²Π° Π±Π΅Π΄Π°!β
ΠΡΠΈΡΠΈΠ½ΠΈΡΠ΅ ΠΏΠΎΡΡΠΈ Π²ΠΈΠ½Π°Π³ΠΈ ΡΠ° Π΅Π΄Π½ΠΈ ΠΈ ΡΡΡΠΈ:
- Π½Π΅Π΅ΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ°
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ: βΠ‘Π΅Π³Π° Π² SQL ΠΈΠΌΠ°ΠΌ 10 ΡΠ°Π±Π»ΠΈΡΠΈ ΡΡΠ΅Π· JOINβ¦β β ΠΈ ΠΎΡΠ°ΠΊΠ²Π°, ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡΡΠ° ΠΌΡ ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅ ΡΠ΅ βΡΠ°Π·Π²ΡΡΠΆΠ°Ρβ ΠΈ ΡΠΎΠΉ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈ Π²ΡΠΈΡΠΊΠΎ Π±ΡΡΠ·ΠΎ. ΠΠΎ ΡΡΠ΄Π΅ΡΠ° Π½Π΅ ΡΠ΅ ΡΠ»ΡΡΠ²Π°Ρ ΠΈ Π²ΡΡΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠΈ ΡΠ°ΠΊΠ°Π²Π° Π²Π°ΡΠΈΠ°ΡΠΈΠ²Π½ΠΎΡΡ (10 ΡΠ°Π±Π»ΠΈΡΠΈ Π² Π΅Π΄ΠΈΠ½ FROM) Π²ΠΈΠ½Π°Π³ΠΈ Π΄Π°Π²Π° Π½ΡΠΊΠ°ΠΊΠ²Π° Π½Π΅ΡΠΎΡΠ½ΠΎΡΡ. [] - Π½Π΅Π°ΠΊΡΡΠ°Π»Π½Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°
Π’ MomentΡΡ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π°ΠΊΡΡΠ°Π»Π΅Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ Π·Π° PostgreSQL, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠ΅ βΠ²Π»ΠΈΠ»ΠΈβ Π³ΠΎΠ»ΡΠΌ Π½Π°Π±ΠΎΡ ΠΎΡ Π΄Π°Π½Π½ΠΈ Π½Π° ΡΡΡΠ²ΡΡΠ°, ΠΏΡΠ°Π²ΠΈΡΠ΅ Π·Π°ΡΠ²ΠΊΠ° β Π° ΡΠΎΠΉ Π²ΠΈ βΡΠ΅ΠΊΡΠΊΠ°Π½ΠΈβ ΠΏΡΠ΅Π· ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°. ΠΠ°ΡΠΎΡΠΎ Π²ΡΠ΅ΡΠ° Π΅ ΠΈΠΌΠ°Π»ΠΎ 10 Π·Π°ΠΏΠΈΡΠ°, Π° Π΄Π½Π΅Ρ 10 ΠΌΠΈΠ»ΠΈΠΎΠ½Π°, Π½ΠΎ PostgreSQL Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π·Π½Π°Π΅ Π·Π° ΡΠΎΠ²Π° ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΠΌΡ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅. [] - βΠ·Π°Π΄ΡΡΡΡΠ²Π°Π½Π΅β ΠΏΠΎ ΡΠ΅ΡΡΡΡΠΈ
ΠΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ ΡΡΠ΅ Π³ΠΎΠ»ΡΠΌΠ° ΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ΅Π½Π° Π±Π°Π·Π° Π½Π° ΡΠ»Π°Π± ΡΡΡΠ²ΡΡ, ΠΊΠΎΠΉΡΠΎ Π½ΡΠΌΠ° Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΠΌΡΡΡΠΎ Π½Π° Π΄ΠΈΡΠΊΠ°, ΠΏΠ°ΠΌΠ΅Ρ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π° ΡΠ°ΠΌΠΈΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡ. Π Π²ΡΠΈΡΠΊΠΎβ¦ ΠΡΠΊΡΠ΄Π΅ ΠΈΠΌΠ° ΡΠ°Π²Π°Π½ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, Π½Π°Π΄ ΠΊΠΎΠΉΡΠΎ Π²Π΅ΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠΊΠΎΡΠΈΡΠ΅. - Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ
Π‘Π»ΠΎΠΆΠ΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ, Π½ΠΎ ΡΠ΅ ΡΠ° Π½Π°ΠΉ-Π°ΠΊΡΡΠ°Π»Π½ΠΈ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠΈ Π·Π°ΡΠ²ΠΊΠΈ (INSERT, UPDATE, DELETE) β ΡΠΎΠ²Π° Π΅ ΠΎΡΠ΄Π΅Π»Π½Π° Π³ΠΎΠ»ΡΠΌΠ° ΡΠ΅ΠΌΠ°.
ΠΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΠ»Π°Π½Π°
β¦ Π Π·Π° Π²ΡΠΈΡΠΊΠΎ ΠΎΡΡΠ°Π½Π°Π»ΠΎ Π½ΠΈ Π΅ Π½ΡΠΆΠ΅Π½ ΠΏΠ»Π°Π½! Π’ΡΡΠ±Π²Π° Π΄Π° Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° Π²ΡΡΡΠ΅ Π² ΡΡΡΠ²Π΅ΡΠ°.

ΠΠ»Π°Π½ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°ΡΠ²ΠΊΠ° Π·Π° PostgreSQL β ΡΠΎΠ²Π° Π΅ Π΄ΡΡΠ²ΠΎ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ° Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅. ΠΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½Π·ΠΈ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π·Π° Π½Π°ΠΉ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ Π² ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° Π°Π½Π°Π»ΠΈΠ·Π° ΠΎΡ ΠΏΠ»Π°Π½ΠΈΡΠ°ΡΠ°.
ΠΡΠ΅ΠΊΠΈ Π²ΡΠ·Π΅Π» Π½Π° Π΄ΡΡΠ²ΠΎΡΠΎ β ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ: ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠ°Π±Π»ΠΈΡΠ° ΠΈΠ»ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡ, ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π±ΠΈΡΠΎΠ²Π° ΠΊΠ°ΡΡΠ°, ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° Π΄Π²Π΅ ΡΠ°Π±Π»ΠΈΡΠΈ, ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅, ΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ ΠΈΠ»ΠΈ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·Π±ΠΎΡΠ°. ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ° Π΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ ΠΏΡΠ΅Π· Π²ΡΠ·Π»ΠΈΡΠ΅ Π½Π° ΡΠΎΠ²Π° Π΄ΡΡΠ²ΠΎ.
ΠΠ° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΏΠ»Π°Π½Π° Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ°, Π½Π°ΠΉ-Π»Π΅ΡΠ½ΠΈΡΡ Π½Π°ΡΠΈΠ½ Π΅ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° EXPLAIN. ΠΠ° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Ρ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π°Π»Π½ΠΈ Π°ΡΡΠΈΠ±ΡΡΠΈ, ΡΠΎΠ΅ΡΡ Π²ΡΡΡΠ½ΠΎΡΡ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ Π·Π°ΡΠ²ΠΊΠ°ΡΠ° Π½Π° Π±Π°Π·Π° β EXPLAIN (ANALYZE, BUFFERS) SELECT ....
ΠΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ: ΠΊΠΎΠ³Π°ΡΠΎ Π³ΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠ΅, ΡΠΎΠ²Π° ΡΠ΅ ΡΠ»ΡΡΠ²Π° βΡΡΠΊ ΠΈ ΡΠ΅Π³Π°β, Π·Π°ΡΠΎΠ²Π° Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΎ ΡΠ°ΠΌΠΎ Π·Π° Π»ΠΎΠΊΠ°Π»Π½Π° ΠΎΡΠ»Π°Π΄ΠΊΠ°. ΠΠΊΠΎ Π²Π·Π΅ΠΌΠ΅ΡΠ΅ ΡΡΡΠ²ΡΡ Ρ Π²ΠΈΡΠΎΠΊΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΏΠΎΠ΄ ΡΠΈΠ»Π΅Π½ ΠΏΠΎΡΠΎΠΊ ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΈ Π²ΠΈΠ΄ΠΈΡΠ΅: βΠ, ΡΡΠΊ ΠΈΠΌΠ°ΠΌΠ΅ Π±Π°Π²Π΅Π½Π·Π°ΡΠ²ΠΊΠ°. ΠΠΎΠ»ΡΠ°ΡΠ°, ΡΠ°Ρ ΠΏΡΠ΅Π΄ΠΈ β Π΄ΠΎΠΊΠ°ΡΠΎ ΡΠΈΡΠ°Ρ ΡΠ΅ ΠΈ ΠΈΠ·Π²Π»ΠΈΡΠ°Ρ ΡΠ΅ ΡΠ°Π·ΠΈ Π·Π°ΡΠ²ΠΊΠ° ΠΎΡ Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅, Π·Π°Π½Π΅ΡΠΎΡ ΡΠ΅ Ρ ΠΎΡΠ½ΠΎΠ²ΠΎ Π½Π° ΡΡΡΠ²ΡΡΠ°, ΡΡΠ»ΠΎΡΠΎ Π²ΠΈ Π½Π°Π±ΠΎΡ ΠΎΡ Π΄Π°Π½Π½ΠΈ ΠΈ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ΠΎ. ΠΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠ΅ Ρ, Π·Π° Π΄Π° ΠΎΡΠ»Π°Π΄ΠΈΡΠ΅ β Π° ΡΡ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π±ΡΡΠ·ΠΎ! Π Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ βΠ·Π°ΡΠΎβ, Π·Π°ΡΠΎ Π΅ Π±ΠΈΠ»ΠΎ Π΅ Π±Π°Π²Π½Π°.

ΠΠ° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠΎΡΠ½ΠΎ Π΅ Π±ΠΈΠ»ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΠ³Π°ΡΠΎ Π·Π°ΡΠ²ΠΊΠ°ΡΠ° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π½Π° ΡΡΡΠ²ΡΡΠ°, ΡΠΌΠ½ΠΈΡΠ΅ Ρ
ΠΎΡΠ° Π½Π°ΠΏΠΈΡΠ°Ρ
Π° . Π’ΠΎΠΉ ΠΏΡΠΈΡΡΡΡΠ²Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ Π½Π°ΠΉ-ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ Π½Π° PostgreSQL ΠΈ ΠΌΠΎΠΆΠ΅ ΠΏΡΠΎΡΡΠΎ Π΄Π° ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ° Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡ ΡΠ°ΠΉΠ».
ΠΠΊΠΎ ΡΠ°Π·ΠΏΠΎΠ·Π½Π°Π΅, ΡΠ΅ Π΄Π°Π΄Π΅Π½Π° Π·Π°ΡΠ²ΠΊΠ° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΏΠΎ-Π΄ΡΠ»Π³ΠΎ ΠΎΡ Π³ΡΠ°Π½ΠΈΡΠ°ΡΠ°, ΠΊΠΎΡΡΠΎ ΡΡΠ΅ ΠΌΡ ΠΊΠ°Π·Π°Π»ΠΈ, ΡΠΎΠΉ ΠΏΡΠ°Π²ΠΈ βΡΠ½ΠΈΠΌΠΊΠ°β Π½Π° ΠΏΠ»Π°Π½Π° Π½Π° ΡΠ°Π·ΠΈ Π·Π°ΡΠ²ΠΊΠ° ΠΈ Ρ Π·Π°ΠΏΠΈΡΠ²Π° Π² Π»ΠΎΠ³Π°.

ΠΠ·Π³Π»Π΅ΠΆΠ΄Π°, Π²ΡΠΈΡΠΊΠΎ Π΅ Π½Π°ΡΠ΅Π΄, ΠΎΡΠΈΠ²Π°ΠΌΠ΅ Π² Π»ΠΎΠ³Π° ΠΈ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΡΠ°ΠΌβ¦ [ΠΏΠΎΡΡΡΠ½ΠΊΠ° ΡΠ΅ΠΊΡΡ]. ΠΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ Π½ΠΈΡΠΎ Π·Π° Π½Π΅Π³ΠΎ, ΠΎΡΠ²Π΅Π½ ΡΠ°ΠΊΡΠ°, ΡΠ΅ ΡΠΎΠ²Π° Π΅ ΠΎΡΠ»ΠΈΡΠ΅Π½ ΠΏΠ»Π°Π½, Π·Π°ΡΠΎΡΠΎ ΡΠ΅ Π΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Π» 11ΠΌΡ.
ΠΠ·Π³Π»Π΅ΠΆΠ΄Π° Π²ΡΠΈΡΠΊΠΎ Π΅ Π΄ΠΎΠ±ΡΠ΅ β Π½ΠΎ Π½ΠΈΡΠΎ Π½Π΅ Π΅ ΡΡΠ½ΠΎ, ΠΊΠ°ΠΊΠ²ΠΎ Π²ΡΡΡΠ½ΠΎΡΡ ΡΠ΅ Π΅ ΡΠ»ΡΡΠ²Π°Π»ΠΎ. ΠΡΠ²Π΅Π½ ΠΎΠ±ΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅, Π½Π΅ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ. ΠΠ°ΡΠΎΡΠΎ Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅Ρ Π½Π° ΡΠ°ΠΊΠ°Π²Π° βΠ»Π°ΡΡΡ Π°β plain text ΠΈΠ·ΠΎΠ±ΡΠΎ Π½Π΅ Π΅ Π½Π°Π³Π»Π΅Π΄Π½ΠΎ.
ΠΠΎ Π΄ΠΎΡΠΈ Π΄Π° Π½Π΅ Π΅ Π½Π°Π³Π»Π΅Π΄Π½ΠΎ, Π΄Π° Π½Π΅ Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ, ΠΈΠΌΠ° ΠΈ ΠΏΠΎ-ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ:
- Π Π²ΡΠ·Π΅Π»Π° ΡΠ΅ ΠΏΠΎΡΠΎΡΠ²Π° ΡΡΠΌΠ° Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅ Π½Π° ΡΡΠ»ΠΎΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠ²ΠΎ ΠΏΠΎΠ΄ Π½Π΅Π³ΠΎ. Π’ΠΎΠ΅ΡΡ, ΠΏΡΠΎΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠΎΠ»ΠΊΠΎ ΡΠΎΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π΅ Π±ΠΈΠ»ΠΎ ΠΏΠΎΡ Π°ΡΡΠ΅Π½ΠΎ Π½Π° ΡΠΎΠ·ΠΈ Index Scan β Π½Π΅ ΠΌΠΎΠΆΠ΅, Π°ΠΊΠΎ ΠΏΠΎΠ΄ Π½Π΅Π³ΠΎ ΠΈΠΌΠ° Π½ΡΠΊΠ°ΠΊΠ²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠ΅. Π’ΡΡΠ±Π²Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ Π΄Π° Π³Π»Π΅Π΄Π°ΠΌΠ΅, Π΄Π°Π»ΠΈ Π½ΡΠΌΠ° Π²ΡΡΡΠ΅ βΠ΄Π΅ΡΠ°β ΠΈ ΡΡΠ»ΠΎΠ²Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, CTE β ΠΈ Π΄Π° ΠΈΠ·ΡΠΈΡΠ»ΠΈΠΌ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° βΠ² Π³Π»Π°Π²Π°ΡΠ°β.
- ΠΡΠΎΡΠΈΡΡ ΠΌΠΎΠΌΠ΅Π½Ρ: Π²ΡΠ΅ΠΌΠ΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΠΏΠΎΡΠΎΡΠ²Π° Π½Π° Π²ΡΠ·Π΅Π»Π°, Π΅ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ·Π΅Π»Π°.ΠΠΊΠΎ ΡΠΎΠ·ΠΈ Π²ΡΠ·Π΅Π» Π΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Π½ Π² ΡΠ΅Π·ΡΠ»ΡΠ°Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΡΠΈΠΊΡΠ» ΠΏΠΎ Π·Π°ΠΏΠΈΡΠΈΡΠ΅ Π² ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°, Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΡΠΈ, ΡΠΎ Π² ΠΏΠ»Π°Π½Π° ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° Π±ΡΠΎΡΡ Π½Π° loops β ΡΠΈΠΊΠ»ΠΈΡΠ΅ Π½Π° ΡΠΎΠ·ΠΈ Π²ΡΠ·Π΅Π». ΠΠΎ ΡΠ°ΠΌΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΡΡΠ°Π²Π° Π² ΠΏΠ»Π°Π½Π° ΡΡΡΠΎΡΠΎ. Π’ΠΎΠ΅ΡΡ, Π·Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠΎΠ»ΠΊΠΎ Π²ΡΡΡΠ½ΠΎΡΡ Π΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Π½ ΡΠΎΠ·ΠΈ Π²ΡΠ·Π΅Π», ΡΡΡΠ±Π²Π° Π΄Π° ΡΠΌΠ½ΠΎΠΆΠ°Π²Π°ΠΌΠ΅ Π΅Π΄Π½ΠΎΡΠΎ ΠΏΠΎ Π΄ΡΡΠ³ΠΎΡΠΎ β ΠΎΡΠ½ΠΎΠ²ΠΎ βΠ² Π³Π»Π°Π²Π°ΡΠ°β.
ΠΡΠΈ ΡΠ΅Π·ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ Π΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ βΠΠΎΠΉ Π΅ Π½Π°ΠΉ-ΡΠ»Π°Π±Π°ΡΠ° Π²ΡΡΠ·ΠΊΠ°?β. ΠΠ°ΡΠΎΠ²Π° Π΄ΠΎΡΠΈ ΡΠ°ΠΌΠΈΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π² βΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎβ ΠΏΠΈΡΠ°Ρ, ΡΠ΅ βΠ Π°Π·Π±ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ»Π°Π½Π° Π΅ ΠΈΠ·ΠΊΡΡΡΠ²ΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΡΠΈ, ΠΎΠΏΠΈΡβ¦β.
ΠΠΎ Π½ΠΈΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ 1000 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠ΅Π΄Π°Π΄Π΅ΠΌ ΡΠΎΠ·ΠΈ ΠΎΠΏΠΈΡ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΡΡΡ . ΠΠ·, ΡΠΈ, ΡΠΎΠΉ β Π·Π½Π°ΡΡ, Π° Π½ΡΠΊΠΎΠΉ ΡΠ°ΠΌ β Π²Π΅ΡΠ΅ Π½Π΅. ΠΠΎΠΆΠ΅ Π±ΠΈ ΡΠΎΠΉ ΡΠ΅ ΡΠ΅ Π½Π°ΡΡΠΈ, Π° ΠΌΠΎΠΆΠ΅ ΠΈ Π΄Π° Π½Π΅ ΡΠ΅, Π½ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΡΠ΅Π³Π° β ΠΎΡΠΊΡΠ΄Π΅ Π΄Π° Π²Π·Π΅ΠΌΠ΅ ΡΠΎΠ·ΠΈ ΠΎΠΏΠΈΡ.
ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΠ»Π°Π½Π°
ΠΠ°ΡΠΎΠ²Π° ΡΠ°Π·Π±ΡΠ°Ρ ΠΌΠ΅ β Π·Π° Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈΠΌ Ρ ΡΠ΅Π·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, Π½ΠΈ ΡΡΡΠ±Π²Π° Π΄ΠΎΠ±ΡΠ° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΠ»Π°Π½Π°.

ΠΠ°ΠΏΠΎΡΠ½Π°Ρ
ΠΌΠ΅ βΠΏΠΎ ΠΏΠ°Π·Π°ΡΠ°β β Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΠ·ΠΎΠ±ΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ.
ΠΠΎ ΡΠ΅ ΠΎΠΊΠ°Π·Π°, ΡΠ΅ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π»ΠΊΠΎ βΠΆΠΈΠ²ΠΈβ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΏΠΎ-ΠΈΠ»ΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡΠ°Π·Π²ΠΈΡΠΈ β Π±ΡΠΊΠ²Π°Π»Π½ΠΎ Π΅Π΄Π½ΠΎ: ΠΎΡ Π₯ΡΠ±Π΅ΡΡ ΠΡΠΊΠ°ΡΠ΅Π²ΡΠΊΠΈ. ΠΠ° Π²Ρ ΠΎΠ΄Π° Π² ΠΏΠΎΠ»Π΅ΡΠΎ βΠ²ΠΊΠ°ΡΠ²Π°Ρβ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ»Π°Π½Π°, ΡΠΎΠΉ ΡΠΈ ΠΏΠΎΠΊΠ°Π·Π²Π° ΡΠ°Π±Π»ΠΈΡΠ° Ρ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ:
- ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ·Π΅Π»Π°
- ΠΎΠ±ΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΡΠ΅Π»ΠΈΡ ΠΏΠΎΠ΄Π΄ΡΡΠ²ΠΎ
- Π±ΡΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π±ΠΈΠ»ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈ ΠΈ ΠΊΠΎΠΈΡΠΎ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ° Π±ΠΈΠ»ΠΈ ΠΎΡΠ°ΠΊΠ²Π°Π½ΠΈ
- ΡΠ°ΠΌΠΎΡΠΎ ΡΡΠ»ΠΎ Π½Π° Π²ΡΠ·Π΅Π»Π°
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠΎΠ·ΠΈ ΡΠ΅ΡΠ²ΠΈΠ· ΠΈΠΌΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»Ρ Π°ΡΡ ΠΈΠ² ΠΎΡ Π»ΠΈΠ½ΠΊΠΎΠ²Π΅. ΠΠΈΠ½ΡΠ²Π°Ρ ΡΠ°ΠΌ ΡΠ²ΠΎΡ ΠΏΠ»Π°Π½ ΠΈ ΠΊΠ°Π·Π²Π°Ρ: βΠΠΉ, ΠΠ°ΡΠ΅, Π΅ΡΠΎ ΡΠΈ Π»ΠΈΠ½ΠΊΠ°, ΡΠ°ΠΌ Π½Π΅ΡΠΎ Π½Π΅ Π΅ Π½Π°ΡΠ΅Π΄.β

ΠΠΎ ΠΈΠΌΠ° ΠΈ ΠΌΠ°Π»ΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ.
ΠΡΡΠ²ΠΎ, ΠΎΠ³ΡΠΎΠΌΠ½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ βΠΊΠΎΠΏΠΈΠΏΠ°ΡΡΠ°β. ΠΠ·ΠΈΠΌΠ°Ρ ΠΏΠ°ΡΡΠ΅ Π»ΠΎΠ³, ΡΠ»Π°Π³Π°Ρ Π³ΠΎ ΡΠ°ΠΌ, ΠΎΡΠ½ΠΎΠ²ΠΎ ΠΈ ΠΎΡΠ½ΠΎΠ²ΠΎ.
ΠΠ° Π²ΡΠΎΡΠΎ ΠΌΡΡΡΠΎ, Π½ΡΠΌΠ° Π°Π½Π°Π»ΠΈΠ· Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ΅Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ β ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ΅Π·ΠΈ buffers, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π° EXPLAIN (ANALYZE, BUFFERS), ΡΡΠΊ Π½Π΅ Π³ΠΈ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅. Π’ΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°, ΡΠ°Π·Π±ΠΈΡΠ° ΠΈ ΡΠ°Π±ΠΎΡΠΈ Ρ ΡΡΡ
. ΠΠΎΠ³Π°ΡΠΎ ΡΠ΅ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΎΡΡΠ·Π½Π°Π²Π°Ρ, ΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π΄Π° Π½Π΅ βΡΠ°Π·Π»ΠΎΠΆΠΈΡβ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ Π½Π° Π΄ΠΈΡΠΊΠ° ΠΈ Π² ΠΊΠ΅ΡΠ° Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΡΠ°Π·ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½Π°.
Π’ΡΠ΅ΡΠΈΡΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ β ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»Π°Π±ΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ. ΠΠΎΠΌΠΌΠΈΡΠΈΡΠ΅ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π»ΠΊΠΈ, Π΄ΠΎΠ±ΡΠ΅ Π°ΠΊΠΎ Π²Π΅Π΄Π½ΡΠΆ Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ Π³ΠΎΠ΄ΠΈΠ½Π°, ΠΈ ΠΊΠΎΠ΄ΡΡ Π΅ Π½Π° Perl.

ΠΠΎ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π΅ βΠ»ΠΈΡΠΈΠΊΠ°β, Ρ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΆΠΈΠ²Π΅Π΅, Π½ΠΎ ΠΈΠΌΠ° Π΅Π΄Π½ΠΎ Π½Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ Π½ΠΈ ΠΎΡΠ±Π»ΡΡΠ½Π° ΡΠΈΠ»Π½ΠΎ ΠΎΡ ΡΠΎΠ·ΠΈ ΡΠ΅ΡΠ²ΠΈΡ. Π’ΠΎΠ²Π° ΡΠ° Π³ΡΠ΅ΡΠΊΠΈΡΠ΅ Π² Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° Common Table Expression (CTE) ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΈ Π²ΡΠ·Π»ΠΈ ΠΊΠ°ΡΠΎ InitPlan/SubPlan.
ΠΠΊΠΎ Π²ΡΡΠ²Π°ΠΌΠ΅ Π½Π° ΡΠ°Π·ΠΈ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ°, ΡΠΎ ΠΎΠ±ΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΠΎΡΠ΄Π΅Π»Π΅Π½ Π²ΡΠ·Π΅Π» Π΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΠΎΠ±ΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ»Π°ΡΠ° Π·Π°ΡΠ²ΠΊΠ°. ΠΡΠΈΡΠΊΠΎ Π΅ ΠΏΡΠΎΡΡΠΎ β ΠΎΡ Π²ΡΠ·Π»Π° CTE Scan Π½Π΅ Π΅ ΠΈΠ·Π²Π°Π΄Π΅Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΎΠ·ΠΈ CTE.. ΠΠ°ΡΠΎΠ²Π° Π²Π΅ΡΠ΅ Π½Π΅ Π·Π½Π°Π΅ΠΌ ΠΊΠ°ΠΊΡΠ² Π΅ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡΡ ΠΎΡΠ³ΠΎΠ²ΠΎΡ, ΠΊΠΎΠ»ΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΎΡΠ½Π΅ ΡΠ°ΠΌΠΎΡΠΎ ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° CTE.

Π’ΡΠΊ ΠΎΡΡΠ·Π½Π°Ρ
ΠΌΠ΅, ΡΠ΅ Π΅ Π²ΡΠ΅ΠΌΠ΅ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΠ²ΠΎΠ΅ β ΡΡΠ°-ΡΡΠ°! ΠΡΠ΅ΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΊΠ°Π·Π²Π°: βΠ‘Π΅Π³Π° ΡΠ΅ Π½Π°ΠΏΠΈΡΠ΅ΠΌ Π½Π°ΡΠ΅ΡΠΎ, ΡΡΠΏΠ΅Ρ Π»Π΅ΡΠ½ΠΎ ΡΠ΅ Π±ΡΠ΄Π΅!β
ΠΠ·Π΅Ρ ΠΌΠ΅ ΡΠΈΠΏΠΈΡΠ½ΠΈΡ Π·Π° ΡΠ΅Π± ΡΡΠ»ΡΠ³ΠΈ ΡΡΠ΅ΠΊ: ΡΠ΄ΡΠΎ Π½Π° Node.js + Express, Π΄ΠΎΠ±Π°Π²ΠΈΡ ΠΌΠ΅ Bootstrap ΠΈ Π·Π° ΠΊΡΠ°ΡΠΈΠ²ΠΈΡΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΈ β D3.js. Π Π½Π°ΡΠΈΡΠ΅ ΠΎΡΠ°ΠΊΠ²Π°Π½ΠΈΡ Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΠ΅ ΠΎΠΏΡΠ°Π²Π΄Π°Ρ Π° β ΠΏΡΡΠ²ΠΈΡΡ ΠΏΡΠΎΡΠΎΡΠΈΠΏ ΠΏΠΎΠ»ΡΡΠΈΡ ΠΌΠ΅ Π·Π° 2 ΡΠ΅Π΄ΠΌΠΈΡΠΈ:
- ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΏΠ°ΡΡΠ΅Ρ Π½Π° ΠΏΠ»Π°Π½Π°
Π’ΠΎΠ΅ΡΡ, ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π²ΡΠ΅ΠΊΠΈ ΠΏΠ»Π°Π½, Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ ΠΎΡ PostgreSQL. - ΠΊΠΎΡΠ΅ΠΊΡΠ΅Π½ Π°Π½Π°Π»ΠΈΠ· Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΈΡΠ΅ Π²ΡΠ·Π»ΠΈ β CTE Scan, InitPlan, SubPlan
- Π°Π½Π°Π»ΠΈΠ· Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π±ΡΡΠ΅ΡΠΈΡΠ΅ β ΠΊΡΠ΄Π΅ Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΠ΅ ΡΠ΅ΡΠ°Ρ ΠΎΡ ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΊΡΠ΄Π΅ ΠΎΡ Π»ΠΎΠΊΠ°Π»Π½ΠΈΡ ΠΊΠ΅Ρ, ΠΊΡΠ΄Π΅ ΠΎΡ Π΄ΠΈΡΠΊΠ°
- ΠΏΠΎΡΡΠΈΠ³Π½Π°Ρ
ΠΌΠ΅ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
ΠΠ° Π΄Π° Π½Π΅ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π° Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π² Π»ΠΎΠ³Π°, Π° Π΄Π° Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ βΠ½Π°ΠΉ-ΡΠ»Π°Π±ΠΎΡΠΎ Π·Π²Π΅Π½ΠΎβ Π²Π΅Π΄Π½Π°Π³Π° Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ°ΡΠ°.

ΠΠΎΠ»ΡΡΠΈΡ
ΠΌΠ΅ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ ΡΠ°ΠΊΠ°Π²Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ° β Π²Π΅Π΄Π½Π°Π³Π° Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°. ΠΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π½Π°ΡΠΈΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΡΠ°Π±ΠΎΡΡΡ Π½Π΅ Ρ ΠΏΡΠ»Π½ΠΎΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΏΠ»Π°Π½Π°, Π° Ρ ΠΏΠΎ-ΠΊΡΠ°ΡΠΊΠΎΡΠΎ. ΠΡΠΈΡΠΊΠΈ ΡΠΈΡΡΠΈ Π²Π΅ΡΠ΅ ΡΠΌΠ΅ ΠΏΠ°ΡΡΠΈΡΠ°Π»ΠΈ ΠΈ ΡΠΎΠΌ Π²ΡΡΡΠ°Π½ΠΈ, Π° Π² ΡΡΠ΅Π΄Π°ΡΠ° ΠΎΡΡΠ°Π²ΠΈΡ
ΠΌΠ΅ ΡΠ°ΠΌΠΎ ΠΏΡΡΠ²ΠΈΡ ΡΠ΅Π΄, ΠΊΠ°ΠΊΡΠ² Π΅ ΡΠΎΠ·ΠΈ Π²ΡΠ·Π΅Π»: CTE Scan, Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° CTE ΠΈΠ»ΠΈ Seq Scan ΠΏΠΎ Π½ΡΠΊΠ°ΠΊΠ²Π° ΡΠ°Π±Π»ΠΈΡΠ°.
Π’ΠΎΠ²Π° ΡΡΠΊΡΠ°ΡΠ΅Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π°ΡΠΈΡΠ°ΠΌΠ΅ ΡΠ°Π±Π»ΠΎΠ½ Π½Π° ΠΏΠ»Π°Π½Π°.

ΠΠ°ΠΊΠ²ΠΎ ΠΎΡΠ΅ Π±ΠΈ Π±ΠΈΠ»ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ? ΠΠΈ Π±ΠΈΠ»ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π° Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊΠ²Π° ΡΠ°ΡΡ ΠΎΡ ΠΎΠ±ΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΠ΅ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Ρ Π½Π° ΠΊΠΎΠΉ Π²ΡΠ·Π΅Π» β ΠΈ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ
ΠΌΠ΅ ΠΎΡΡΡΡΠ°Π½ΠΈ pie chart.
ΠΠ°ΡΠΎΡΠ²Π°ΠΌΠ΅ ΠΊΡΠΌ Π²ΡΠ·Π΅Π»Π° ΠΈ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ β ΠΎΠΊΠ°Π·ΡΠ²Π° ΡΠ΅, ΡΠ΅ Seq Scan Π΅ Π·Π°Π΅Π» ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ Π΅Π΄Π½Π° ΡΠ΅ΡΠ²ΡΡΡ ΠΎΡ ΠΎΠ±ΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅, Π° ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅ 3/4 ΡΠ° Π·Π°Π΅ΡΠΈ ΠΎΡ CTE Scan. Π£ΠΆΠ°Ρ! Π’ΠΎΠ²Π° Π΅ ΠΌΠ°Π»ΠΊΠΎ Π·Π°Π±Π΅Π»Π΅ΠΆΠΊΠ° Π·Π° βΡΠΊΠΎΡΠΎΡΡΡΠ°β Π½Π° CTE Scan, Π°ΠΊΠΎ Π°ΠΊΡΠΈΠ²Π½ΠΎ Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π² Π·Π°ΠΏΡΠΎΡΠΈΡΠ΅ ΡΠΈ. Π’Π΅ Π½Π΅ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ·ΠΈ β Π΄ΠΎΡΠΈ ΠΎΡΡΡΡΠΏΠ²Π°Ρ Π½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎΡΠΎ ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π±Π»ΠΈΡΠΈ.
ΠΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ°ΠΊΠΈΠ²Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΈ ΡΠ° ΠΏΠΎ-ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈ, ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ½ΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ Π²Π΅Π΄Π½Π°Π³Π° Π½Π°ΡΠΎΡΠ²Π°ΠΌΠ΅ ΠΊΡΠΌ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΈ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π°ΡΠ° ΠΎΡ ΠΎΠ±ΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π΅ βΠΈΠ·ΡΠ΄Π΅Π½ΠΎβ ΠΎΡ Π½ΡΠΊΠ°ΠΊΡΠ² Seq Scan. Π Π²ΡΡΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΊΠ°ΠΊΡΠ² Filter, ΠΊΡΠΏ Π·Π°ΠΏΠΈΡΠΈ ΡΠ° Π±ΠΈΠ»ΠΈ ΠΎΡΡ Π²ΡΡΠ»Π΅Π½ΠΈβ¦ ΠΠΎΠΆΠ΅ΠΌ ΡΠΎΡΠ½ΠΎ ΡΠ°Π·ΠΈ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ° Π΄Π° Ρ Π΄Π°Π²Π°ΠΌΠ΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΈ Π΄Π° ΠΊΠ°Π·Π²Π°ΠΌΠ΅: βΠΠ°ΡΡ, ΡΡΠΊ Π²ΡΠΈΡΠΊΠΎ Π΅ Π·Π»Π΅! Π Π°Π·Π±Π΅ΡΠΈ, ΠΏΠΎΠ³Π»Π΅Π΄Π½ΠΈ β Π½Π΅ΡΠΎ Π½Π΅ Π΅ Π½Π°ΡΠ΅Π΄!β

ΠΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ, Π½Π΅ ΠΌΠΈΠ½Π° ΠΈ Π±Π΅Π· βΠ³ΡΠ°Π±Π»ΠΈβ.
ΠΡΡΠ²ΠΎΡΠΎ Π½Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ "Π½Π°ΠΏΡΠ°Π²ΠΈΡ ΠΌΠ΅", Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ Ρ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΠ΅ΡΠΎ. ΠΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΠΎΡΠ΄Π΅Π»Π΅Π½ Π²ΡΠ·Π΅Π» Π² ΠΏΠ»Π°Π½Π° ΡΠ΅ ΠΏΠΎΡΠΎΡΠ²Π° Ρ ΡΠΎΡΠ½ΠΎΡΡ Π΄ΠΎ 1 ΠΌΠΊΡ. Π ΠΊΠΎΠ³Π°ΡΠΎ Π±ΡΠΎΡΡ Π½Π° ΡΠΈΠΊΠ»ΠΈ Π½Π° Π²ΡΠ·Π΅Π»Π° Π½Π°Π΄Ρ Π²ΡΡΠ»Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 1000 β ΡΠ»Π΅Π΄ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ PostgreSQL Π΄Π΅Π»ΠΈ Ρ "ΡΠΎΡΠ½ΠΎΡΡ Π΄ΠΎ", ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΠΎΠ±ΡΠΎ Π²ΡΠ΅ΠΌΠ΅ "Π½ΡΠΊΡΠ΄Π΅ ΠΌΠ΅ΠΆΠ΄Ρ 0.95ΠΌΡ ΠΈ 1.05ΠΌΡ". ΠΠΎΠ³Π°ΡΠΎ ΡΡΠ°Π²Π° Π²ΡΠΏΡΠΎΡ Π·Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄ΠΈ β ΡΠΎΠ²Π° Π½Π΅ Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π½ΠΎ ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠ°Π²Π° Π΄ΡΠΌΠ° Π·Π° [ΠΌΠΈΠ»ΠΈ]ΡΠ΅ΠΊΡΠ½Π΄ΠΈ β ΠΏΡΠΈ "ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅" Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅ ΠΏΠΎ Π²ΡΠ·Π»ΠΈΡΠ΅ Π½Π° ΠΏΠ»Π°Π½Π° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΎΡΡΠ΅ΡΠ΅ΠΌ ΡΠ°Π·ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.

ΠΡΠΎΡΠΈΡΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ΅Π½, Π΅ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅ (ΡΠ΅Π·ΠΈ buffers) ΠΌΠ΅ΠΆΠ΄Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΈΡΠ΅ Π²ΡΠ·Π»ΠΈ. Π’ΠΎΠ²Π° Π½ΠΈ ΠΎΡΠ½Π΅ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ 4 ΡΠ΅Π΄ΠΌΠΈΡΠΈ Π² ΠΏΡΡΠ²ΠΈΡΠ΅ 2 ΡΠ΅Π΄ΠΌΠΈΡΠΈ Π½Π° ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ°.
ΠΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΊΡΠ² ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π΅ Π΄ΠΎΡΡΠ° ΠΏΡΠΎΡΡΠΎ β ΠΏΡΠ°Π²ΠΈΠΌ CTE ΠΈ Π² Π½Π΅Π³ΠΎ Π½Π΅ΡΠΎ ΡΠΆ ΡΠ΅ΡΠ°. ΠΡΡΡΠ½ΠΎΡΡ, PostgreSQL Π΅ "ΡΠΌΠ΅Π½" ΠΈ Π½Π΅ ΡΠ΅ ΡΠ΅ΡΠ΅ Π½ΠΈΡΠΎ ΡΠ°ΠΌ. ΠΠΎΡΠ»Π΅ Π²Π·Π΅ΠΌΠ°ΠΌΠ΅ ΠΏΡΡΠ²ΠΈΡ Π·Π°ΠΏΠΈΡ ΠΎΡ Π½Π΅Π³ΠΎ, Π° Π·Π° Π½Π΅Π³ΠΎ β ΡΡΠΎΡΠ½ΠΈΡ ΠΎΡ ΡΡΡΠΈΡ CTE.

ΠΠ»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠ»Π°Π½Π° ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌΠ΅ β ΡΡΡΠ°Π½Π½ΠΎ, 3 buffers (ΡΡΡΠ°Π½ΠΈΡΠΈ Π΄Π°Π½Π½ΠΈ) Π±ΡΡ
Π° "ΠΏΠΎΡΡΠ΅Π±Π΅Π½ΠΈ" Π² Seq Scan, ΠΎΡΠ΅ 1 Π² CTE Scan ΠΈ ΠΎΡΠ΅ 2 Π²ΡΠ² Π²ΡΠΎΡΠΈΡ CTE Scan. Π’ΠΎΠ΅ΡΡ, Π°ΠΊΠΎ ΠΏΡΠΎΡΡΠΎ ΡΡΠ±Π΅ΡΠ΅ΠΌ, ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ 6, Π½ΠΎ ΠΎΡ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° ΡΠΌΠ΅ ΠΏΡΠΎΡΠ΅Π»ΠΈ ΡΠ°ΠΌΠΎ 3! CTE Scan Π²ΡΡΡΠ½ΠΎΡΡ Π½Π΅ ΡΠ΅ΡΠ΅ Π½ΠΈΡΠΎ ΠΎΡΠ½ΠΈΠΊΡΠ΄Π΅, Π° ΡΠ°Π±ΠΎΡΠΈ Π½Π°ΠΏΡΠ°Π²ΠΎ Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°. ΠΠ½Π°ΡΠΈ ΡΡΠΊ ΡΠ²Π½ΠΎ Π½Π΅ΡΠΎ Π½Π΅ Π΅ Π½Π°ΡΠ΅Π΄!
ΠΡΡΡΠ½ΠΎΡΡ, ΡΠ΅ ΠΎΠΊΠ°Π·Π²Π°, ΡΠ΅ ΡΠ΅Π·ΠΈ 3 ΡΡΡΠ°Π½ΠΈΡΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ Π±ΡΡ Π° ΠΏΠΎΠΈΡΠΊΠ°Π½ΠΎ ΠΎΡ Seq Scan, ΠΏΡΡΠ²ΠΎ 1 ΠΏΠΎΠΈΡΠΊΠ° 1-Π²ΠΈΡ CTE Scan, Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° 2-ΡΠΈΡ, ΠΈ ΠΌΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π° ΠΎΡΠ΅ 2. Π’ΠΎΠ΅ΡΡ, ΠΎΠ±ΡΠΎ Π±ΡΡ Π° ΠΏΡΠΎΡΠ΅ΡΠ΅Π½ΠΈ 3 ΡΡΡΠ°Π½ΠΈΡΠΈ Π΄Π°Π½Π½ΠΈ, Π° Π½Π΅ 6.

Π ΡΠ°Π·ΠΈ ΠΊΠ°ΡΡΠΈΠ½Π° Π½ΠΈ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ΡΠΎ, ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ»Π°Π½Π° β ΡΠΎΠ²Π° Π²Π΅ΡΠ΅ Π½Π΅ Π΅ Π΄ΡΡΠ²ΠΎ, Π° ΠΏΡΠΎΡΡΠΎ Π½ΡΠΊΠ°ΠΊΡΠ² Π°ΡΠΈΠΊΠ»ΠΈΡΠ΅Π½ Π³ΡΠ°Ρ. Π ΠΏΠΎΠ»ΡΡΠΈΡ
ΠΌΠ΅ ΡΠ°ΠΊΠ°Π²Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°, Π·Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ "ΠΊΠ°ΠΊΠ²ΠΎ-ΠΎΡΠΊΡΠ΄Π΅ Π²ΡΡΡΠ½ΠΎΡΡ Π΄ΠΎΠΉΠ΄Π΅". Π’ΠΎΠ΅ΡΡ ΡΡΠΊ ΡΡΠ·Π΄Π°Π΄ΠΎΡ
ΠΌΠ΅ CTE ΠΎΡ pg_class ΠΈ Ρ ΠΏΠΎΠΈΡΠΊΠ°Ρ
ΠΌΠ΅ Π΄Π²Π° ΠΏΡΡΠΈ, ΠΈ ΠΏΠΎΡΡΠΈ Π²ΡΠΈΡΠΊΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΈΠ·ΡΠ°Π·Ρ
ΠΎΠ΄Π²Π°Ρ
ΠΌΠ΅ ΠΏΠΎ ΠΊΠ»ΠΎΠ½, ΠΊΠΎΠ³Π°ΡΠΎ Ρ ΠΏΠΎΠΈΡΠΊΠ°Ρ
ΠΌΠ΅ 2-ΡΠΈΡ ΠΏΡΡ. Π―ΡΠ½ΠΎ Π΅, ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° 101-Π²ΠΈΡ Π·Π°ΠΏΠΈΡ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΡΠΊΡΠΏΠΎ ΠΎΡ ΠΏΡΠΎΡΡΠΎ 1-Π²ΠΈΡ ΠΎΡ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°.

ΠΠΈΠ΅ Π·Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΠ΅Ρ
ΠΌΠ΅ Π΄ΡΠ»Π±ΠΎΠΊΠΎ Π²ΡΠ·Π΄ΡΡ
. ΠΠ°Π·Π°Ρ
ΠΌΠ΅: "Π‘Π΅Π³Π°, ΠΠ΅ΠΎ, Π·Π½Π°Π΅Ρ ΠΊΡΠ½Π³-ΡΡ! Π‘Π΅Π³Π° Π½Π°ΡΠΈΡΡ ΠΎΠΏΠΈΡ Π΅ Π½Π° Π΅ΠΊΡΠ°Π½Π° ΡΠΈ. Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅Ρ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ."
ΠΠΎΠ½ΡΠΎΠ»ΠΈΠ΄Π°ΡΠΈΡ Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅
ΠΠ°ΡΠΈΡΠ΅ 1000 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΠΎΠ±Π»Π΅ΠΊΡΠ΅Π½ΠΎ Π²ΡΠ·Π΄ΡΡ Π½Π°Ρ Π°. ΠΠΎ Π½ΠΈΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°Ρ ΠΌΠ΅, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ ΡΠ°ΠΌΠΎ ΡΡΠΎΡΠΈΡΠΈ "Π±ΠΎΠΉΠ½ΠΈ" ΡΡΡΠ²ΡΡΠΈ ΠΈ ΡΡΠ»ΠΎΡΠΎ ΡΠΎΠ²Π° "ΠΊΠΎΠΏΠΈΠΏΠ°ΡΡ" ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠΎ Π½Π΅ Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ. Π Π°Π·Π±ΡΠ°Ρ ΠΌΠ΅, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΎ ΡΠ³Π»ΠΎΠ±ΠΈΠΌ ΡΠ°ΠΌΠΈ.

ΠΡΡΡΠ½ΠΎΡΡ, ΠΈΠΌΠ° Π²Π³ΡΠ°Π΄Π΅Π½ ΠΌΠΎΠ΄ΡΠ», ΠΊΠΎΠΉΡΠΎ ΡΠΌΠ΅Π΅ Π΄Π° ΡΡΠ±ΠΈΡΠ° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°, Π½ΠΎ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° Π±ΡΠ΄Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° β ΡΠΎΠ²Π° Π΅ . ΠΠΎ ΡΠΎΠΉ Π½Π΅ Π½ΠΈ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ²Π°.
ΠΡΡΠ²ΠΎ, Π½Π° Π΅Π΄Π½ΠΈ ΠΈ ΡΡΡΠΈ Π·Π°ΡΠ²ΠΊΠΈ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡ
Π΅ΠΌΠΈ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π΅Π΄Π½Π° Π±Π°Π·Π° ΡΠΎΠΉ ΠΏΡΠΈΡΠ²ΠΎΡΠ²Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ QueryId. Π’ΠΎΠ΅ΡΡ, Π°ΠΊΠΎ ΠΏΡΡΠ²ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ SET search_path = '01'; SELECT * FROM user LIMIT 1;, Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° SET search_path = '02'; ΠΈ ΡΡΡΠ°ΡΠ° Π·Π°ΡΠ²ΠΊΠ°, ΡΠΎ Π² ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°ΡΠ° Π½Π° ΡΠΎΠ·ΠΈ ΠΌΠΎΠ΄ΡΠ» ΡΠ΅ Π±ΡΠ΄Π°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΈ Π½ΡΠΌΠ° Π΄Π° ΠΌΠΎΠ³Π° Π΄Π° ΡΡΠ±Π΅ΡΠ° ΠΎΠ±ΡΠ° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΠΎΠ±Ρ
Π²Π°ΡΠ° Π½Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΎΡΠΈΠ» Π½Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ, Π±Π΅Π· Π΄Π° ΡΠ΅ Π²Π·Π΅ΠΌΠ°Ρ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΡΡ
Π΅ΠΌΠΈΡΠ΅.
ΠΡΠΎΡΠΈΡΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ Π½ΠΈ ΠΏΠΎΠΏΡΠ΅ΡΠΈ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ β Π»ΠΈΠΏΡΠ°ΡΠ° Π½Π° ΠΏΠ»Π°Π½ΠΎΠ²Π΅. Π’ΠΎΠ΅ΡΡ, Π½ΡΠΌΠ° ΠΏΠ»Π°Π½ β ΠΈΠΌΠ° ΡΠ°ΠΌΠΎ ΡΠ°ΠΌΠ°ΡΠ° Π·Π°ΡΠ²ΠΊΠ°. ΠΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Π·Π°Π±Π°Π²ΡΠ»ΠΎ, Π½ΠΎ Π½Π΅ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌΠ΅ Π·Π°ΡΠΎ. Π ΡΡΠΊ ΡΠ΅ Π²ΡΡΡΠ°ΠΌΠ΅ ΠΊΡΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π±ΡΡΠ·ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΡΡΠΈΡ ΡΠ΅ Π½Π°Π±ΠΎΡ ΠΎΡ Π΄Π°Π½Π½ΠΈ.
Π ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΡ ΠΌΠΎΠΌΠ΅Π½Ρ β Π»ΠΈΠΏΡΠ°ΡΠ° Π½Π° "ΡΠ°ΠΊΡΠΈ". Π’ΠΎΠ΅ΡΡ, Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π°Π΄ΡΠ΅ΡΠΈΡΠ° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π·Π°ΡΠ²ΠΊΠ° β Π½ΡΠΌΠ° ΡΠ°ΠΊΡΠ², ΠΈΠΌΠ° ΡΠ°ΠΌΠΎ Π°Π³ΡΠ΅Π³ΠΈΡΠ°Π½Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°. Π‘ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ, Π½ΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ.

ΠΠ°ΡΠΎΠ²Π° ΡΠ΅ΡΠΈΡ
ΠΌΠ΅ Π΄Π° ΡΠ΅ Π±ΠΎΡΠΈΠΌ Ρ "ΠΊΠΎΠΏΠΈΠΏΠ°ΡΡΠ°ΡΠ°" ΠΈ Π·Π°ΠΏΠΎΡΠ½Π°Ρ
ΠΌΠ΅ Π΄Π° ΠΏΠΈΡΠ΅ΠΌ ΠΊΠΎΠ»Π΅ΠΊΡΠΎΡ.
ΠΠΎΠ»Π΅ΠΊΡΠΎΡΡΡ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π° ΠΏΠΎ SSH, "ΠΈΠ·ΡΠ΅Π³Π»Ρ" Π·Π°ΡΠΈΡΠ΅Π½Π° Π²ΡΡΠ·ΠΊΠ° Π΄ΠΎ ΡΡΡΠ²ΡΡΠ° Ρ Π±Π°Π·Π°ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΈ tail -F "ΡΠ΅ ΠΏΡΠΈΠΊΡΠ΅ΠΏΡ" ΠΊΡΠΌ Π½Π΅Π³ΠΎ Π½Π° Π»ΠΎΠ³-ΡΠ°ΠΉΠ»Π°. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½, Π² ΡΠ°Π·ΠΈ ΡΠ΅ΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΠΏΡΠ»Π½ΠΎ "ΠΎΠ³Π»Π΅Π΄Π°Π»ΠΎ" Π½Π° ΡΠ΅Π»ΠΈΡ Π»ΠΎΠ³-ΡΠ°ΠΉΠ», ΠΊΠΎΠΉΡΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ° ΡΡΡΠ²ΡΡΡΡ. ΠΠ°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΌΠΈΡ ΡΡΡΠ²ΡΡ ΠΏΡΠΈ ΡΠΎΠ²Π° Π΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½Π΅ ΠΏΠ°ΡΡΠ²Π°ΠΌΠ΅ Π½ΠΈΡΠΎ, ΠΏΡΠΎΡΡΠΎ ΠΎΡΡΠ°Π·ΡΠ²Π°ΠΌΠ΅ ΡΡΠ°ΡΠΈΠΊΠ°.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π²Π΅ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π°Ρ ΠΌΠ΅ Π΄Π° ΠΏΠΈΡΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° Node.js, ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈΡ ΠΌΠ΅ ΠΈ ΠΊΠΎΠ»Π΅ΠΊΡΠΎΡΠ° Π½Π° Π½Π΅Π³ΠΎ. Π’Π°Π·ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΡΠ΅ ΠΎΠΏΡΠ°Π²Π΄Π°, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° JavaScript Π·Π° ΡΠ°Π±ΠΎΡΠ° ΡΡΡ ΡΠ»Π°Π±ΠΎ ΡΠΎΡΠΌΠ°ΡΠΈΡΠ°Π½ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΠΊΠ²ΠΈΡΠΎ ΡΠ° Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅. Π ΡΠ°ΠΌΠ°ΡΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π½Π° Node.js ΠΊΠ°ΡΠΎ Π±Π΅ΠΊΠ΅Π½Π΄ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π»Π΅ΡΠ½ΠΎ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΠΌ Ρ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ Π²ΡΡΠ·ΠΊΠΈ ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Ρ ΠΏΠΎΡΠΎΠΊ ΠΎΡ Π΄Π°Π½Π½ΠΈ.
Π‘ΡΠΎΡΠ²Π΅ΡΠ½ΠΎ, Π½ΠΈΠ΅ βΠ΄ΡΡΠΏΠ°ΠΌΠ΅β Π΄Π²Π΅ Π²ΡΡΠ·ΠΊΠΈ: ΠΏΡΡΠ²Π°ΡΠ°, Π·Π° Π΄Π° βΡΠ»ΡΡΠ°ΠΌΠ΅β ΡΠ°ΠΌΠΈΡ Π»ΠΎΠ³ ΠΈ Π΄Π° Π³ΠΎ Π²Π·Π΅ΠΌΠ΅ΠΌ ΠΏΡΠΈ Π½Π°Ρ, Π° Π²ΡΠΎΡΠ°ΡΠ° - Π·Π° Π΄Π° ΠΏΠΈΡΠ°ΠΌΠ΅ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ Π±Π°Π·Π°ΡΠ°. βΠ Π΅ΡΠΎ, Π² Π»ΠΎΠ³Π° Π΄ΠΎΠΉΠ΄Π΅, ΡΠ΅ Π΅ Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π° ΡΠ°Π±Π»ΠΈΡΠ° Ρ oid 123β, Π½ΠΎ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠΎΠ²Π° Π½Π΅ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈ Π½ΠΈΡΠΎ ΠΈ Π±ΠΈ Π±ΠΈΠ»ΠΎ Π΄ΠΎΠ±ΡΠ΅ Π΄Π° ΠΏΠΎΠΏΠΈΡΠ° Π±Π°Π·Π°ΡΠ° βΠ ΠΊΠ°ΠΊΠ²ΠΎ Π²ΡΡΡΠ½ΠΎΡΡ Π΅ OID = 123?β Π ΡΠ°ΠΊΠ° ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ ΠΏΠΈΡΠ°ΠΌΠ΅ Π±Π°Π·Π°ΡΠ° Π·Π° Π½Π΅ΡΠ°, Π·Π° ΠΊΠΎΠΈΡΠΎ ΠΎΡΠ΅ Π½Π΅ Π·Π½Π°Π΅ΠΌ.

βΠ‘Π°ΠΌΠΎ Π΅Π΄Π½ΠΎ Π½Π΅ ΡΠΈ Π²Π·Π΅Π» ΠΏΡΠ΅Π΄Π²ΠΈΠ΄, ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° Π²ΠΈΠ΄ ΡΠ»ΠΎΠ½ΠΎΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΡΠ΅Π»ΠΈ!..β ΠΠ°ΠΏΠΎΡΠ½Π°Ρ
ΠΌΠ΅ Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°ΠΌΠ΅ ΡΠ°Π·ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΡΠΊΠ°Ρ
ΠΌΠ΅ Π΄Π° ΡΠ»Π΅Π΄ΠΈΠΌ 10 ΡΡΡΠ²ΡΡΠ°. ΠΠ°ΠΉ-ΠΊΡΠΈΡΠΈΡΠ½ΠΈΡΠ΅ Π² Π½Π°ΡΠ΅ΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π°Ρ
Π° Π½ΡΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, Ρ ΠΊΠΎΠΈΡΠΎ Π±Π΅ΡΠ΅ ΡΡΡΠ΄Π½ΠΎ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈΠΌ. ΠΠΎ ΠΏΡΠ΅Π· ΠΏΡΡΠ²ΠΎΡΠΎ ΡΡΠΈΠΌΠ΅ΡΠ΅ΡΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡ
ΠΌΠ΅ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΡΡΠΎ, Π·Π°ΡΠΎΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° βΠ²Π»Π΅Π·Π΅β, Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΠΈΡΠΊΠ°Ρ
Π°, Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΈΠΌ Π±Π΅ΡΠ΅ ΡΠ΄ΠΎΠ±Π½ΠΎ.
ΠΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΡΠ±ΠΈΡΠ°, ΠΏΠΎΡΠΎΠΊΡΡ ΠΎΡ Π΄Π°Π½Π½ΠΈ Π΅ Π³ΠΎΠ»ΡΠΌ ΠΈ Π°ΠΊΡΠΈΠ²Π΅Π½. ΠΡΡΡΠ½ΠΎΡΡ, ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΡΠ»Π΅Π΄ΠΈΠΌ, Ρ Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈΠΌ - ΡΠΎΠ²Π° ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΈ PostgreSQL ΠΊΠ°ΡΠΎ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ. ΠΡΠΌΠ° Π½ΠΈΡΠΎ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° COPY Π²ΡΠ΅ ΠΎΡΠ΅ Π½ΡΠΌΠ°.
ΠΠΎ ΠΏΡΠΎΡΡΠΎ βΠΈΠ·Π»ΠΈΠ²Π°Π½Π΅ΡΠΎβ Π½Π° Π΄Π°Π½Π½ΠΈ Π½Π΅ Π΅ ΡΡΠ²ΡΠ΅ΠΌ Π½Π°ΡΠ°ΡΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ. ΠΠ°ΡΠΎΡΠΎ Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΡΡΠΎ ΡΡΡΠ²ΡΡΠ°, Π½Π° ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π°Ρ ΠΎΠΊΠΎΠ»ΠΎ 50k Π·Π°ΡΠ²ΠΊΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°, ΡΠΎ ΡΠΎΠ²Π° Π³Π΅Π½Π΅ΡΠΈΡΠ° 100-150GB Π»ΠΎΠ³ΠΎΠ²Π΅ Π½Π° Π΄Π΅Π½. ΠΠ°ΡΠΎΠ²Π° Π½ΠΈ ΡΠ΅ Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° βΠΈΠ·Π³ΡΠ°Π΄ΠΈΠΌβ Π±Π°Π·Π°ΡΠ° Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΎ.
ΠΠ° ΠΏΡΡΠ²ΠΎ ΠΌΡΡΡΠΎ, Π½Π°ΠΏΡΠ°Π²ΠΈΡ ΠΌΠ΅ ΡΠ΅ΠΊΡΠΈΠΈ ΠΏΠΎ Π΄Π½ΠΈ, Π·Π°ΡΠΎΡΠΎ, Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ°, Π½ΠΈΠΊΠΎΠ³ΠΎ Π½Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π° ΠΊΠΎΡΠ΅Π»Π°ΡΠΈΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π½ΠΈΡΠ΅. ΠΠ°ΠΊΠ²Π° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΈΠΌΠ°, ΠΊΠ°ΠΊΠ²ΠΎ ΡΠΈ Π΅ Π±ΠΈΠ»ΠΎ Π²ΡΠ΅ΡΠ°, Π°ΠΊΠΎ Π΄Π½Π΅Ρ ΠΏΡΠ΅Π· Π½ΠΎΡΡΠ° ΠΏΡΡΠ½Π΅Ρ Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ - ΠΈ Π²Π΅ΡΠ΅ ΠΈΠΌΠ°Ρ Π½ΠΎΠ²Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°.
ΠΠ° Π²ΡΠΎΡΠΎ ΠΌΡΡΡΠΎ, Π½Π°ΡΡΠΈΡ
ΠΌΠ΅ ΡΠ΅ (Π±ΡΡ
ΠΌΠ΅ ΠΏΡΠΈΠ½ΡΠ΄Π΅Π½ΠΈ) ΠΌΠ½ΠΎΠ³ΠΎ-ΠΎΡΠ΅Π½Ρ Π±ΡΡΠ·ΠΎ Π΄Π° ΠΏΠΈΡΠ΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° COPY. Π’ΠΎΠ΅ΡΡ Π½Π΅ ΠΏΡΠΎΡΡΠΎ COPY, Π·Π°ΡΠΎΡΠΎ Π΅ ΠΏΠΎ-Π±ΡΡΠ· ΠΎΡ INSERT, Π° ΠΎΡΠ΅ ΠΏΠΎ-Π±ΡΡΠ·.

Π’ΡΠ΅ΡΠΈΡΡ ΠΌΠΎΠΌΠ΅Π½Ρ - ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΡΠ΅ ΠΎΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΎΡ ΡΡΠΈΠ³Π΅ΡΠΈΡΠ΅, ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ ΠΈ ΠΎΡ Foreign Keys. Π’ΠΎΠ΅ΡΡ, Π½ΡΠΌΠ°ΠΌΠ΅ ΡΡΠ²ΡΠ΅ΠΌ ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠ½Π° ΡΡΠ»ΠΎΡΡΠ½ΠΎΡΡ. ΠΠ°ΡΠΎΡΠΎ Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΠ°, Π½Π° ΠΊΠΎΡΡΠΎ ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ FK, ΠΈ ΠΊΠ°Π·Π²Π°ΡΠ΅ Π² ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, ΡΠ΅ βΠ²ΠΎΡ Π·Π°ΠΏΠΈΡ ΠΎΡ Π»ΠΎΠ³Π° ΡΠΎΡΠΈ ΠΏΠΎ FK, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° Π³ΡΡΠΏΠ° Π·Π°ΠΏΠΈΡΠΈβ, ΠΊΠΎΠ³Π°ΡΠΎ Ρ Π²ΠΌΡΠΊΠ²Π°ΡΠ΅, PostgreSQL Π½ΡΠΌΠ° Π½ΠΈΡΠΎ Π΄ΡΡΠ³ΠΎ, ΠΎΡΠ²Π΅Π½ Π΄Π° Π²Π·Π΅ΠΌΠ΅ ΠΈ ΡΠ΅ΡΡΠ½ΠΎ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈ SELECT 1 FROM master_fk1_table WHERE ... Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°ΡΠ΅ Π΄Π° Π²ΠΌΡΠΊΠ½Π΅ΡΠ΅ - ΠΏΡΠΎΡΡΠΎ, Π·Π° Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΠ΅, ΡΠ΅ ΡΠΎΠ·ΠΈ Π·Π°ΠΏΠΈΡ ΠΏΡΠΈΡΡΡΡΠ²Π°, ΡΠ΅ Π½Π΅ βΡΠ°Π·ΡΡΡΠ°Π²Π°ΡΠ΅β ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠ½ΠΈΡ ΠΊΠ»ΡΡ Ρ Π²Π°ΡΠ΅ΡΠΎ Π²ΠΌΡΠΊΠ²Π°Π½Π΅.
ΠΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π²ΠΌΠ΅ΡΡΠΎ Π΅Π΄Π½Π° Π·Π°ΠΏΠΈΡ Π² ΡΠ΅Π»Π΅Π²Π°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° ΠΈ Π½Π΅ΠΉΠ½ΠΈΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ, Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΡΠ΅ΡΠ΅Π½Π΅ ΠΎΡ Π²ΡΠΈΡΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ, Π½Π° ΠΊΠΎΠΈΡΠΎ ΡΡ ΡΠ΅ ΠΏΠΎΠ·ΠΎΠ²Π°Π²Π°. Π ΡΠΎΠ²Π° ΠΈΠ·ΠΎΠ±ΡΠΎ Π½Π΅ Π½ΠΈ Π΅ Π½ΡΠΆΠ½ΠΎ β Π·Π°Π΄Π°ΡΠ°ΡΠ° Π½ΠΈ Π΅ Π΄Π° Π·Π°ΠΏΠΈΡΠ΅ΠΌ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-Π±ΡΡΠ·ΠΎ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅. Π’Π°ΠΊΠ° ΡΠ΅ FK β ΠΏΡΠΎΡΠΈΡΡΠ²Π°ΠΌΠ΅!
Π‘Π»Π΅Π΄Π²Π°ΡΠΈΡΡ ΠΌΠΎΠΌΠ΅Π½Ρ Π΅ Π°Π³ΡΠ΅Π³Π°ΡΠΈΡΡΠ° ΠΈ Ρ Π΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ. ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΡΠ΅ Π±ΡΡ Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π² ΠΠ β Π½Π°ΠΈΡΡΠΈΠ½Π° Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ Π²Π΅Π΄Π½Π°Π³Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡ Π·Π°ΠΏΠΈΡ, Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡ Π² Π½ΡΠΊΠ°ΠΊΠ²Π° ΡΠ°Π±Π»ΠΈΡΠ° βΠΏΠ»ΡΡ Π΅Π΄Π½ΠΎβ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² ΡΡΠΈΠ³Π³Π΅ΡΠ°. ΠΠΎΠ±ΡΠ΅ Π΅, ΡΠ΄ΠΎΠ±Π½ΠΎ, Π½ΠΎ Π²ΡΠ΅Π΄Π½ΠΎ β Π²ΠΌΡΠΊΠ²Π°ΡΠ΅ Π΅Π΄ΠΈΠ½ Π·Π°ΠΏΠΈΡ, Π½ΠΎ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»Π½ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΠ΅ΡΠ΅ Π½Π΅ΡΠΎ ΠΎΡ Π΄ΡΡΠ³Π° ΡΠ°Π±Π»ΠΈΡΠ°. Π Π½Π΅ Π΅ ΡΠ°ΠΌΠΎ ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΠ΅ΡΠ΅ β Π° ΠΈ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ.
Π ΡΠ΅Π³Π° ΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅ΡΠ΅, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΠ°, Π² ΠΊΠΎΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠ΅Π±ΡΠΎΡΠ²Π°ΡΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΡΠΎ Π·Π°ΡΠ²ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Ρ ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ Ρ
ΠΎΡΡ: +1, +1, +1, ..., +1. Π ΡΠΎΠ²Π° ΠΈΠ·ΠΎΠ±ΡΠΎ Π½Π΅ Π²ΠΈ Π΅ Π½ΡΠΆΠ½ΠΎ β Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΠΌΠΈΡΠ° Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° ΠΊΠΎΠ»Π΅ΠΊΡΠΎΡΠ° ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠΈ Π² Π±Π°Π·Π°ΡΠ° Π·Π° Π΅Π΄ΠΈΠ½ ΠΏΡΡ +10.
ΠΠ°, Π² ΡΠ»ΡΡΠ°ΠΉ Π½Π° Π½ΡΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°ΡΠ° ΡΡΠ»ΠΎΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ βΡΠ°Π·ΠΏΠ°Π΄Π½Π΅β, Π½ΠΎ ΡΠΎΠ²Π° Π΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ΡΠ΅Π°Π»Π΅Π½ ΡΠ»ΡΡΠ°ΠΉ β Π·Π°ΡΠΎΡΠΎ ΠΈΠΌΠ°ΡΠ΅ Π½ΠΎΡΠΌΠ°Π»Π΅Π½ ΡΡΡΠ²ΡΡ, Π² Π½Π΅Π³ΠΎ ΠΈΠΌΠ° Π±Π°ΡΠ΅ΡΠΈΡ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ°, ΠΈΠΌΠ°ΡΠ΅ ΠΆΡΡΠ½Π°Π» Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΡΠ΅, ΠΆΡΡΠ½Π°Π» Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°β¦ Π‘ΡΠΎΡΠ²Π΅ΡΠ½ΠΎ, Π½Π΅ ΡΠΈ ΡΡΡΡΠ²Π°. ΠΠ΅ ΡΠΈ ΡΡΡΡΠ²Π° Π·Π°Π³ΡΠ±Π°ΡΠ° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΡΠ΅ Π·Π° ΡΠΌΠ΅ΡΠΊΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΡΠΈΠ³Π³Π΅ΡΠΈΡΠ΅/FK, ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ½Π°ΡΡΡΠ΅ ΠΏΡΠΈ ΡΠΎΠ²Π°.
Π‘ΡΡΠΎΡΠΎ Π²Π°ΠΆΠΈ ΠΈ Π·Π° Ρ Π΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ. ΠΡΠΈ Π²Π°Ρ ΠΏΠΎΡΡΡΠΏΠ²Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π·Π°ΡΠ²ΠΊΠ°, ΠΎΡ Π½Π΅Ρ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°ΡΠ΅ Π² ΠΠ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, Π·Π°ΠΏΠΈΡΠ²Π°ΡΠ΅ Π² Π±Π°Π·Π°ΡΠ° ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π²ΡΠΈΡΠΊΠΈ ΠΊΠ°Π·Π²Π°ΡΠ΅ Π·Π° Π½Π΅Π³ΠΎ. ΠΡΠΈΡΠΊΠΎ Π΅ Π΄ΠΎΠ±ΡΠ΅, Π΄ΠΎΠΊΠ°ΡΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° Π·Π°ΠΏΠΈΡ Π½Π΅ Π΄ΠΎΠΉΠ΄Π΅ Π²ΡΠΎΡΠΈ ΠΆΠ΅Π»Π°Π΅Ρ Π΄Π° Π·Π°ΠΏΠΈΡΠ΅ ΡΡΡΠΎΡΠΎ β ΠΈ ΠΏΡΠΈ Π²Π°Ρ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π²Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°, Π° ΡΠΎΠ²Π° Π²Π΅ΡΠ΅ Π΅ Π»ΠΎΡΠΎ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ, Π°ΠΊΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π½Π΅ΡΠ΅ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π½ΡΠΊΠ°ΠΊΠ²ΠΈ ID Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° (ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»Π½ΠΎ Π΄ΠΎ Π±Π°Π·Π°ΡΠ°), ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π΅ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅.
ΠΠ΄Π΅Π°Π»Π½ΠΎ Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ MD5 ΠΎΡ ΡΠ΅ΠΊΡΡΠ° β Π·Π°ΡΠ²ΠΊΠ°ΡΠ°, ΠΏΠ»Π°Π½Π°, ΡΠ°Π±Π»ΠΎΠ½Π°,β¦ ΠΠ·ΡΠΈΡΠ»ΡΠ²Π°ΠΌΠ΅ Π³ΠΎ Π½Π° ΡΡΡΠ°Π½Π°ΡΠ° Π½Π° ΠΊΠΎΠ»Π΅ΠΊΡΠΎΡΠ° ΠΈ βΠΈΠ·Π»ΠΈΠ²Π°ΠΌΠ΅β Π² Π±Π°Π·Π°ΡΠ° Π²Π΅ΡΠ΅ Π³ΠΎΡΠΎΠ² ID. ΠΡΠ»ΠΆΠΈΠ½Π°ΡΠ° Π½Π° MD5 ΠΈ Π΄Π½Π΅Π²Π½ΠΎΡΠΎ ΡΠ΅ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅ Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° Π½Π΅ ΡΠ΅ ΠΏΡΠΈΡΠ΅ΡΠ½ΡΠ²Π°ΠΌΠ΅ Π·Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈ ΠΊΠΎΠ»ΠΈΠ·ΠΈΠΈ.

ΠΠΎ Π·Π° Π΄Π° Π·Π°ΠΏΠΈΡΠ΅ΠΌ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π±ΡΡΠ·ΠΎ, ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°ΠΌΠ΅ ΡΠ°ΠΌΠ°ΡΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π·Π° Π·Π°ΠΏΠΈΡ.
ΠΠ°ΠΊ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Ρ Π΄Π°Π½Π½ΠΈ? ΠΠΌΠ°ΠΌΠ΅ Π½ΡΠΊΠ°ΠΊΡΠ² Π½Π°Π±ΠΎΡ ΠΎΡ Π΄Π°Π½Π½ΠΈ, ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π°ΠΌΠ΅ Π³ΠΎ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ°Π±Π»ΠΈΡΠΈ ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° COPY β ΠΏΡΡΠ²ΠΎ Π² ΠΏΡΡΠ²Π°ΡΠ°, ΠΏΠΎΡΠ»Π΅ Π²ΡΠ² Π²ΡΠΎΡΠ°ΡΠ°, Π² ΡΡΠ΅ΡΠ°ΡΠ°β¦ ΠΠ΅ Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ, Π·Π°ΡΠΎΡΠΎ ΡΠΆ Π·Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ Π΄Π°Π½Π½ΠΈ Π½Π° ΡΡΠΈ ΡΡΡΠΏΠΊΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ. ΠΠ΅ΠΏΡΠΈΡΡΠ½ΠΎ. ΠΠΎΠΆΠ΅ Π»ΠΈ Π΄Π° ΡΡΠ°Π½Π΅ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ? ΠΠΎΠΆΠ΅!
ΠΠ° ΡΠ΅Π»ΡΠ° ΠΏΡΠΎΡΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΡΠ΅Π·ΠΈ ΠΏΠΎΡΠΎΡΠΈ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ Π΅Π΄ΠΈΠ½ Ρ Π΄ΡΡΠ³. ΠΠΊΠ°Π·Π²Π° ΡΠ΅, ΡΠ΅ Π² ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΏΠΎΡΠΎΡΠΈ ΠΏΠΎΡΡΡΠΏΠ²Π°Ρ Π³ΡΠ΅ΡΠΊΠΈ, Π·Π°ΡΠ²ΠΊΠΈ, ΡΠ°Π±Π»ΠΎΠ½ΠΈ, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ,β¦ β ΠΈ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π³ΠΎ Π·Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ. ΠΠ° ΡΠ΅Π»ΡΠ° Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΄Π° Π΄ΡΡΠΆΠΈΠΌ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ COPY-ΠΊΠ°Π½Π°Π» Π·Π° Π²ΡΡΠΊΠ° ΠΎΡΠ΄Π΅Π»Π½Π° ΡΠ΅Π»Π΅Π²Π° ΡΠ°Π±Π»ΠΈΡΠ°.

Π’ΠΎΠ΅ΡΡ, ΠΊΠΎΠ»Π΅ΠΊΡΠΎΡΡΡ Π²ΠΈΠ½Π°Π³ΠΈ ΠΈΠΌΠ° ΡΡΡΠΈΠΉΠΌ, Π² ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠ³Π° Π΄Π° Π·Π°ΠΏΠΈΡΠ° Π½ΡΠΆΠ½ΠΈΡΠ΅ ΠΌΠΈ Π΄Π°Π½Π½ΠΈ. ΠΠΎ Π·Π° Π΄Π° Π²ΠΈΠ΄ΠΈ Π±Π°Π·Π°ΡΠ° ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ, Π° Π½ΡΠΊΠΎΠΉ Π΄Π° Π½Π΅ Π±ΡΠ΄Π΅ Π±Π»ΠΎΠΊΠΈΡΠ°Π½, Π΄ΠΎΠΊΠ°ΡΠΎ ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ°Ρ, COPY ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΊΡΡΠ²Π° Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎΡΡ. ΠΠ° Π½Π°Ρ Π½Π°ΠΉ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ ΡΠ΅ ΠΎΠΊΠ°Π·Π° ΠΎΠΊΠΎΠ»ΠΎ 100ΠΌΡ β Π·Π°ΡΠ²Π°ΡΡΠΌΠ΅ ΠΈ Π²Π΅Π΄Π½Π°Π³Π° ΠΎΡΠ½ΠΎΠ²ΠΎ ΠΎΡΠ²Π°ΡΡΠΌΠ΅ Π½Π° ΡΡΡΠ°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ°. Π Π°ΠΊΠΎ Π΅Π΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ Π½Π΅ ΡΠ°ΠΌΠΎ Π½ΠΈ Π΄ΠΎΡΡΠΈΠ³Π° ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΠΈΠΊΠΈ, Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠΌ ΠΏΡΠ» Π΄ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΏΡΠ΅Π΄Π΅Π».
ΠΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡ
ΠΌΠ΅, ΡΠ΅ Π·Π° ΡΠ°ΠΊΡΠ² ΠΏΡΠΎΡΠΈΠ» Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π²ΡΡΠΊΠ° Π°Π³ΡΠ΅Π³Π°ΡΠΈΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π·Π°ΠΏΠΈΡΠΈΡΠ΅ ΡΠ΅ ΡΡΠ±ΠΈΡΠ°Ρ Π² ΠΏΠ°ΠΊΠ΅ΡΠΈ β Π΅ Π·Π»ΠΎ. ΠΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΎΡΠΎ Π·Π»ΠΎ β Π΅ INSERT ... VALUES ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° 1000 Π·Π°ΠΏΠΈΡΠΈ. ΠΠ°ΡΠΎΡΠΎ Π² ΡΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ·Π½ΠΈΠΊΠ²Π° ΠΏΠΈΠΊ Π½Π° Π·Π°ΠΏΠΈΡΠΈΡΠ΅ Π²ΡΡΡ
Ρ Π½ΠΎΡΠΈΡΠ΅Π»Ρ ΠΈ Π²ΡΠΈΡΠΊΠΈ ΠΎΡΡΠ°Π½Π°Π»ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°Ρ Π΄Π° Π·Π°ΠΏΠΈΡΠ°Ρ Π½Π΅ΡΠΎ Π½Π° Π΄ΠΈΡΠΊΠ°, ΡΠ΅ ΡΠ°ΠΊΠ°Ρ.
ΠΠ° Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π°Π²ΠΈΠΌ ΠΎΡ ΡΠ°ΠΊΠΈΠ²Π° Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ, ΠΏΡΠΎΡΡΠΎ Π½Π΅ Π°Π³ΡΠ΅Π³ΠΈΡΠ°ΠΉΡΠ΅ Π½ΠΈΡΠΎ, Π½Π΅ Π±ΡΡΠ΅ΡΠΈΡΠ°ΠΉΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠΎ. Π Π°ΠΊΠΎ Π²ΡΠ΅ ΠΏΠ°ΠΊ Π²ΡΠ·Π½ΠΈΠΊΠ½Π΅ Π±ΡΡΠ΅ΡΠΈΡΠ°Π½Π΅ ΠΊΡΠΌ Π΄ΠΈΡΠΊΠ° (Π·Π° ΡΠ°ΡΡΠΈΠ΅, Stream API Π² Node.js ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΡΠΎΠ²Π°) β ΠΎΡΠ»ΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ²Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅. ΠΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΡΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΎ Π΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ β Π·Π°ΠΏΠΈΡΠ²Π°ΠΉΡΠ΅ Π² Π½Π΅Π³ΠΎ ΠΎΡ Π½Π°ΡΡΡΠΏΠ°Π½Π°ΡΠ° ΠΎΠΏΠ°ΡΠΊΠ°. Π Π΄ΠΎΠΊΠ°ΡΠΎ Π΅ Π·Π°Π΅ΡΠΎ β Π²Π·ΠΈΠΌΠ°ΠΉΡΠ΅ ΡΠ»Π΅Π΄Π²Π°ΡΠΎΡΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΠΎΡ ΠΏΡΠ»Π° ΠΈ Π·Π°ΠΏΠΈΡΠ²Π°ΠΉΡΠ΅ Π² Π½Π΅Π³ΠΎ.
ΠΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΊΡΠ² ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π·Π° Π·Π°ΠΏΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈΠΌΠ°Ρ ΠΌΠ΅ ΠΎΠΊΠΎΠ»ΠΎ 4K ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° Π·Π°ΠΏΠΈΡ, Π° ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ Π½Π°ΠΌΠ°Π»ΠΈΡ ΠΌΠ΅ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ 4 ΠΏΡΡΠΈ. Π‘Π΅Π³Π° Π½Π°ΡΠ°ΡΠ½Π°Ρ ΠΌΠ΅ Ρ ΠΎΡΠ΅ 6 ΠΏΡΡΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ²ΠΈΡΠ΅ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΈ Π±Π°Π·ΠΈ β Π΄ΠΎ 100MB/s. Π ΡΠ΅Π³Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ Π»ΠΎΠ³ΠΎΠ²Π΅ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ 3 ΠΌΠ΅ΡΠ΅ΡΠ° Ρ ΠΎΠ±Π΅ΠΌ ΠΎΠΊΠΎΠ»ΠΎ 10-15TB, Ρ Π½Π°Π΄Π΅ΠΆΠ΄Π°ΡΠ°, ΡΠ΅ Π·Π° ΡΡΠΈΡΠ΅ ΠΌΠ΅ΡΠ΅ΡΠ° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ΅ΡΠ΅Π½ ΠΎΡ Π²ΡΠ΅ΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ.
Π Π°Π·Π±ΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅
ΠΠΎ ΠΏΡΠΎΡΡΠΎ ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ β Π΄ΠΎΠ±ΡΠ΅, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΡΠΌΠ΅ΡΡΠ½ΠΎ, Π½ΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ β ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΈ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ. ΠΠ°ΡΠΎΡΠΎ ΡΠΎΠ²Π° ΡΠ° ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ Π½Π° Π΄Π΅Π½.

ΠΠΎ ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈΡΠ΅ β ΡΠΎΠ²Π° Π΅ Π½Π΅ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎ, ΠΏΡΡΠ²ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ "ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ". Π Π½Π°ΠΉ-Π½Π°ΠΏΡΠ΅Π΄ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ΡΠΈΠΌ ΠΊΠ°ΠΊ ΡΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΡΠΎΠ²Π° "ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ".
ΠΠΈΠ΅ ΡΠΌΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΡΡΠΈ ΠΊΠ»ΡΡΠΎΠ²ΠΈ ΠΌΠΎΠΌΠ΅Π½ΡΠ°:
- ΠΊΠΎΠΉ ΡΠΎΠ·ΠΈ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π΅ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ΠΎ ΠΎΡ
Π’.Π΅. ΠΎΡ ΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΅ "Π΄ΠΎΡΠ»ΠΎ": ΡΠ΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π±Π΅ΠΊΠ΅Π½Π΄, ΠΏΠ»Π°ΡΠ΅ΠΆΠ½Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΠ»ΠΈ Π½Π΅ΡΠΎ Π΄ΡΡΠ³ΠΎ. - ΠΊΡΠ΄Π΅ΡΠΎ ΡΠΎΠ²Π° ΡΠ΅ Π΅ ΡΠ»ΡΡΠΈΠ»ΠΎ
ΠΠ° ΠΊΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΡΡΡΠ²ΡΡ. ΠΠ°ΡΠΎΡΠΎ Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΡΠ²ΡΡΠ° ΠΏΠΎΠ΄ Π΅Π΄Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΈΠ·Π²Π΅Π΄Π½ΡΠΆ Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΡΡ "Π·Π°Π±Π°Π²ΠΈ" (ΠΏΠΎΡΠ°Π΄ΠΈ "Π³Π½ΠΈΠ΅Π½Π΅ Π½Π° Π΄ΠΈΡΠΊΠ°", "ΠΏΡΠΎΡΠ΅ΠΊΠ»Π° ΠΏΠ°ΠΌΠ΅Ρ", ΠΈΠ»ΠΈ Π΄ΡΡΠ³Π° Π±Π΅Π΄Π°), ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π°Π΄ΡΠ΅ΡΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π΄ΠΎ ΡΡΡΠ²ΡΡΠ°. - ΠΊΠ°ΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ ΡΠ΅ Π΅ ΠΏΡΠΎΡΠ²ΠΈΠ» Π² ΡΠΎΠ·ΠΈ ΠΈΠ»ΠΈ ΠΎΠ½Π·ΠΈ ΠΏΠ»Π°Π½
ΠΠ° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ "ΠΊΠΎΠΉ" Π½ΠΈ Π΅ ΠΈΠ·ΠΏΡΠ°ΡΠΈΠ» Π·Π°ΠΏΡΠΎΡ, Π½ΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ β ΡΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΠΈΠΉΠ½Π°ΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°: SET application_name = '{bl-host}:{bl-method}'; β ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΠΌΠ΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Ρ
ΠΎΡΡΠ° Π½Π° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ°, ΠΎΡ ΠΊΠΎΠΉΡΠΎ Π±ΡΠ΄Π΅ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ, ΠΈ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ Π³ΠΎ Π΅ ΠΈΠ½ΠΈΡΠΈΠΈΡΠ°Π»ΠΎ.
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΏΡΠ΅Π΄Π°Π΄Π΅ΠΌ "Π΄ΠΎΠΌΠ°ΠΊΠΈΠ½Π°" Π½Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ, ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΎ ΠΈΠ·Π²Π΅Π΄Π΅ΠΌ Π² Π»ΠΎΠ³ β Π·Π° ΡΠΎΠ²Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° log_line_prefix = ' %m [%p:%v] [%d] %r %a'. ΠΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°, ΠΌΠΎΠΆΠ΅ , ΠΊΠ°ΠΊΠ²ΠΎ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°. Π Π»ΠΎΠ³Π³Π°ΡΠ° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ:
- Π²ΡΠ΅ΠΌΠ΅ΡΠΎ
- ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°
- ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π±Π°Π·Π°ΡΠ°
- IP-ΡΠΎ Π½Π° ΡΠΎΠ·ΠΈ, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΈΠ·ΠΏΡΠ°ΡΠΈΠ» Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ
- ΠΈ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΌΠ΅ΡΠΎΠ΄Π°

Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ°Π·Π±ΡΠ°Ρ
ΠΌΠ΅, ΡΠ΅ Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π΄Π° Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ²ΡΡΠ·ΠΊΠ°ΡΠ° Π½Π° Π΅Π΄Π½ΠΎ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΡΠ²ΡΡΠΈ. ΠΠ΅ ΡΠ΅ ΡΠ»ΡΡΠ²Π° ΡΠ΅ΡΡΠΎ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π΅Π΄Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΅Π΄Π½Π°ΠΊΠ²ΠΎ "Π½Π΅ ΡΡΠΏΡΠ²Π°" ΠΊΠ°ΠΊΡΠΎ ΡΡΠΊ, ΡΠ°ΠΊΠ° ΠΈ ΡΠ°ΠΌ. ΠΠΎ Π΄ΠΎΡΠΈ ΠΈ Π΄Π° Π΅ Π΅Π΄Π½Π°ΠΊΠ²ΠΎ β Π²ΠΈΠΆΡΠ΅ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΡΠ΅Π·ΠΈ ΡΡΡΠ²ΡΡΠΈ.
Π’Π°ΠΊΠ° ΡΠ΅, ΡΠ°Π·ΡΠ΅Π·ΡΡ "Π΅Π΄ΠΈΠ½ ΡΡΡΠ²ΡΡ β Π΅Π΄ΠΈΠ½ Π΄Π΅Π½" Π²ΡΡΡΠ½ΠΎΡΡ ΡΠ΅ ΠΎΠΊΠ°Π·Π° Π΄ΠΎΡΡΠ°ΡΡΡΠ΅Π½ Π·Π° Π²ΡΡΠΊΠ°ΠΊΡΠ² Π°Π½Π°Π»ΠΈΠ·.
ΠΡΡΠ²ΠΈΡΡ Π°Π½Π°Π»ΠΈΡΠΈΡΠ΅Π½ ΡΠ°Π·ΡΠ΅Π· β ΡΠΎΠ²Π° Π΅ ΠΎΠ½Π·ΠΈ "ΡΠ°Π±Π»ΠΎΠ½" β ΡΡΠΊΡΠ°ΡΠ΅Π½Π° ΡΠΎΡΠΌΠ° Π½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΏΠ»Π°Π½Π°, ΠΎΡΠΈΡΡΠ΅Π½Π° ΠΎΡ Π²ΡΠΈΡΠΊΠΈ ΡΠΈΡΠ»Π΅Π½ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ. ΠΡΠΎΡΠΈΡΡ ΡΠ°Π·ΡΠ΅Π· β ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄, Π° ΡΡΠ΅ΡΠΈΡΡ β ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈΡΡ Π²ΡΠ·Π΅Π» Π½Π° ΠΏΠ»Π°Π½Π°, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π» Ρ Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ.
ΠΠΎΠ³Π°ΡΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Ρ ΠΌΠ΅ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΈ ΠΊΡΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΈ, ΠΏΠΎΠ»ΡΡΠΈΡ ΠΌΠ΅ Π²Π΅Π΄Π½Π°Π³Π° Π΄Π²Π΅ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°:
- Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π½Π°ΠΌΠ°Π»Π΅Π½ΠΈΠ΅ Π½Π° Π±ΡΠΎΡ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅ Π·Π° Π°Π½Π°Π»ΠΈΠ·
ΠΠ°Π»Π°Π³Π° ΡΠ΅ Π΄Π° ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²Π΅ΡΠ΅ Π½Π΅ ΠΏΠΎ Ρ ΠΈΠ»ΡΠ΄ΠΈ Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠ»Π°Π½ΠΎΠ²Π΅, Π° ΠΏΠΎ Π΄Π΅ΡΠ΅ΡΠΊΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΈ. - Π²ΡΠ΅ΠΌΠ΅Π²Π° Π»ΠΈΠ½ΠΈΡ
Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ, ΠΎΠ±ΠΎΠ±ΡΠ°Π²Π°ΠΉΠΊΠΈ "ΡΠ°ΠΊΡΠΈΡΠ΅" Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΡΡΠ°Π·ΠΈΠΌ ΡΡΡ Π½ΠΎΡΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π΄Π΅Π½Ρ. Π ΡΡΠΊ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΡΡΠ·Π½Π°Π΅ΡΠ΅, ΡΠ΅ Π°ΠΊΠΎ ΠΏΡΠΈ Π²Π°Ρ ΡΠ΅ Π½Π°Π±Π»ΡΠ΄Π°Π²Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ°Ρ, Π° Π²ΡΡΡΠ½ΠΎΡΡ Π±ΠΈ ΡΡΡΠ±Π²Π°Π»ΠΎ Π΄Π° Π΅ Π²Π΅Π΄Π½ΡΠΆ Π½Π° Π΄Π΅Π½, ΡΡΡΡΠ²Π° ΡΠΈ Π΄Π° ΡΠ΅ Π·Π°ΠΌΠΈΡΠ»ΠΈΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΡΡΠ°Π½Π°Π»ΠΎ β ΠΊΠΎΠΉ ΠΈ Π·Π°ΡΠΎ Π³ΠΎ Π΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²Π°Π», ΠΌΠΎΠΆΠ΅ Π±ΠΈ ΠΈΠ·ΠΎΠ±ΡΠΎ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΎ ΠΈΠΌΠ° ΡΡΠΊ. Π’ΠΎΠ²Π° Π΅ ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ Π½Π΅ΡΠΈΡΠ»ΠΎΠ², ΡΠΈΡΡΠΎ Π²ΠΈΠ·ΡΠ°Π»Π΅Π½ Π½Π°ΡΠΈΠ½ Π·Π° Π°Π½Π°Π»ΠΈΠ·.

ΠΡΡΠ°Π½Π°Π»ΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π²Π°Ρ Π½Π° ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·Π²Π»ΠΈΡΠ°ΠΌΠ΅ ΠΎΡ ΠΏΠ»Π°Π½Π°: ΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΡΠΈ Π΅ Π½Π°ΡΡΡΠΏΠΈΠ» ΡΠ°ΠΊΡΠ² ΠΌΠΎΠ΄Π΅Π», ΠΎΠ±ΡΠΎΡΠΎ ΠΈ ΡΡΠ΅Π΄Π½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΊΠΎΠ»ΠΊΠΎ Π΄Π°Π½Π½ΠΈ ΡΠ° ΠΏΡΠΎΡΠ΅ΡΠ΅Π½ΠΈ ΠΎΡ Π΄ΠΈΡΠΊΠ° ΠΈ ΠΊΠΎΠ»ΠΊΠΎ ΠΎΡ ΠΏΠ°ΠΌΠ΅ΡΡΠ°β¦
ΠΠ°ΡΠΎΡΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠΈΠ²Π°ΡΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Ρ Π°Π½Π°Π»ΠΈΠ·ΠΈ Π·Π° Ρ ΠΎΡΡ, Π²ΠΈΠΆΠ΄Π°ΡΠ΅ β Π½Π΅ΡΠΎ ΠΏΡΠ΅ΠΊΠ°Π»Π΅Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ ΡΠ΅ΡΠ΅ ΠΎΡ Π΄ΠΈΡΠΊΠ°. ΠΠΈΡΠΊΡΡ Π½Π° ΡΡΡΠ²ΡΡΠ° Π½Π΅ ΡΠΏΡΠ°Π²Ρ, Π° ΠΊΠΎΠΉ ΡΠ΅ΡΠ΅ ΠΎΡ Π½Π΅Π³ΠΎ?
Π ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠΎΡΡΠΈΡΠ°ΡΠ΅ ΠΏΠΎ Π²ΡΡΠΊΠ° ΠΊΠΎΠ»ΠΎΠ½Π° ΠΈ Π΄Π° ΡΠ΅ΡΠΈΡΠ΅ Ρ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠΎΡΠ½ΠΎ ΡΠ΅ ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π²Π°ΡΠ΅ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° β Ρ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° ΠΈΠ»ΠΈ Π½Π° Π΄ΠΈΡΠΊΠ°, ΠΈΠ»ΠΈ Ρ ΠΎΠ±ΡΠΈΡ Π±ΡΠΎΠΉ Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡβ¦ Π‘ΠΎΡΡΠΈΡΠ°Π»ΠΈ ΡΡΠ΅, Π²ΠΈΠΆΠ΄Π°ΡΠ΅ βΡΠΎΠΏΠΎΠ²ΠΈΡΠ΅β, ΡΠ΅ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΠ΅ β ΠΈ ΠΏΡΡΠΊΠ°ΡΠ΅ Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ.
Π Π²Π΅Π΄Π½Π°Π³Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΡΠ°Π±ΠΎΡΡΡ Ρ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ ΠΌΠΎΠ΄Π΅Π» ΠΎΡ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ ΡΠΈΠΏ SELECT * FROM users WHERE login = 'Vasya'. Π€ΡΠΎΠ½ΡΠ΅Π½Π΄, Π±Π΅ΠΊΠ΅Π½Π΄, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°β¦ Π ΡΠ΅ Π·Π°ΠΌΠΈΡΠ»ΡΡΠ΅, Π·Π°ΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° ΡΠ΅ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ, Π°ΠΊΠΎ ΡΠΎΠΉ Π½Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π° Ρ Π½Π΅Π³ΠΎ.
ΠΠ±ΡΠ°ΡΠ½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ β Π²Π΅Π΄Π½Π°Π³Π° ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠ°Π²ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ½ΡΠ΅Π½Π΄ΡΡ β ΡΠΎΠ²Π°, ΡΠΎΠ²Π°, ΡΠΎΠ²Π°, Π° ΠΎΡΠ΅ ΡΡΠΊ ΡΠΎΠ²Π° Π²ΡΡΠΊΠ° ΡΠ°Ρ (ΠΊΠ°ΠΊΡΠΎ ΡΠ°ΠΉΠΌΠ»Π°ΠΉΠ½ΡΡ ΠΏΠΎΠΌΠ°Π³Π°). Π Π²Π΅Π΄Π½Π°Π³Π° Π²ΡΠ·Π½ΠΈΠΊΠ²Π° Π²ΡΠΏΡΠΎΡ β ΠΌΠ°ΠΉ Π½Π΅ Π΅ ΡΠ°Π±ΠΎΡΠ° Π½Π° ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° Π΄Π° ΠΏΡΠ°Π²ΠΈ Π½Π΅ΡΠΎ Π²ΡΡΠΊΠ° ΡΠ°Ρβ¦

Π‘Π»Π΅Π΄ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΎΡΡΠ·Π½Π°Ρ
ΠΌΠ΅, ΡΠ΅ Π½ΠΈ Π»ΠΈΠΏΡΠ²Π° Π°Π³ΡΠ΅Π³ΠΈΡΠ°Π½Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° ΠΏΠΎ Π²ΡΠ·Π»ΠΈ Π² ΠΏΠ»Π°Π½Π°. ΠΠ·Π²Π»ΡΠΊΠΎΡ
ΠΌΠ΅ ΠΎΡ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ΡΠ΅ ΡΠ°ΠΌΠΎ ΡΠ΅Π·ΠΈ Π²ΡΠ·Π»ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ°Π²ΡΡ Π½Π΅ΡΠΎ Ρ Π΄Π°Π½Π½ΠΈΡΠ΅ Π½Π° ΡΠ°ΠΌΠΈΡΠ΅ ΡΠ°Π±Π»ΠΈΡΠΈ (ΡΠ΅ΡΠ°/ΠΏΠΈΡΠ° ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈΠ»ΠΈ Π½Π΅). ΠΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ, ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ° ΡΠ΅ Π΄ΠΎΠ±Π°Π²Ρ ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½ Π°ΡΠΏΠ΅ΠΊΡ β ΠΊΠΎΠ»ΠΊΠΎ Π·Π°ΠΏΠΈΡΠ° ΡΠΎΠ·ΠΈ Π²ΡΠ·Π΅Π» Π½ΠΈ Π΅ Π΄ΠΎΠ½Π΅ΡΡΠ», Π° ΠΊΠΎΠ»ΠΊΠΎ Π΅ ΠΎΡΡ
Π²ΡΡΠ»ΠΈΠ» (Rows Removed by Filter).
ΠΡΠΌΠ°ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°, ΠΏΡΠ°Π²ΠΈΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ ΠΊΡΠΌ Π½Π΅Ρ, ΡΠΎ ΠΌΠΈΠ½Π°Π²Π° ΠΏΠΎΠΊΡΠ°ΠΉ ΠΈΠ½Π΄Π΅ΠΊΡΠ°, ΠΏΠ°Π΄Π° Π² Seq Scanβ¦ Π²ΡΠΈΡΠΊΠΈ Π·Π°ΠΏΠΈΡΠΈ, ΠΎΡΠ²Π΅Π½ Π΅Π΄ΠΈΠ½, ΡΡΠ΅ ΡΠΈΠ»ΡΡΠΈΡΠ°Π»ΠΈ. Π Π·Π°ΡΠΎ Π²ΠΈ ΡΡΡΠ±Π²Π°Ρ 100M ΠΎΡΡΠΈΠ»ΡΡΠΈΡΠ°Π½ΠΈ Π·Π°ΠΏΠΈΡΠΈ Π·Π° Π΄Π΅Π½, Π½Π΅ Π΅ Π»ΠΈ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡ?

Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΠ°Π·Π³Π»Π΅Π΄Π°Ρ
ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ ΠΏΠΎ Π²ΡΠ·Π»ΠΈ, ΠΎΡΡΠ·Π½Π°Ρ
ΠΌΠ΅, ΡΠ΅ ΠΈΠΌΠ° Π½ΡΠΊΠΎΠΈ ΡΠΈΠΏΠΎΠ²ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ Π² ΠΏΠ»Π°Π½ΠΎΠ²Π΅ΡΠ΅, ΠΊΠΎΠΈΡΠΎ Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»ΡΠΌΠ° Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»Π½ΠΎ. Π Π½Π΅ Π±ΠΈ Π±ΠΈΠ»ΠΎ Π·Π»Π΅ Π΄Π° ΠΏΠΎΠ΄ΡΠΊΠ°Π·Π²Π°ΠΌΠ΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°: βΠΡΠΈΡΡΠ΅Π»Ρ, ΠΏΡΡΠ²ΠΎ ΡΠ΅ΡΠ΅Ρ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅, Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΎΡΡΡΠ·Π²Π°Ρβ β ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ°ΠΌ ΠΈΠΌΠ° ΡΠ°ΠΌΠΎ Π΅Π΄Π½Π° Π·Π°ΠΏΠΈΡ.
ΠΡΠ΅ΠΊΠΈ, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΏΠΈΡΠ°Π» Π·Π°ΡΠ²ΠΊΠΈ Ρ ΡΠ°ΠΊΡΠ² ΠΌΠΎΠ΄Π΅Π», ΡΠΈΠ³ΡΡΠ½ΠΎ Π΅ ΡΡΠ΅ΡΠ°Π»: βΠΠ°ΠΉ ΠΌΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΏΠΎΡΡΡΠΊΠ° ΠΏΠΎ ΠΠ°ΡΠ΅, Π½Π΅ΠΉΠ½Π°ΡΠ° Π΄Π°ΡΠ°.β Π Π°ΠΊΠΎ Π½ΡΠΌΠ°ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΠΎ Π΄Π°ΡΠ°, ΠΈΠ»ΠΈ Π² ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π½ΡΠΌΠ° Π΄Π°ΡΠ°, ΡΠΎ ΡΠΎΡΠ½ΠΎ Π½Π° ΡΠ°ΠΊΠΈΠ²Π° βΠ³ΡΠ°Π±Π»ΠΈβ ΠΈ ΡΠ΅ ΡΡΡΠΏΠΈΡΠ΅.
ΠΠΎ Π½ΠΈΠ΅ Π·Π½Π°Π΅ΠΌ ΠΊΠ°ΠΊΠ²ΠΈ ΡΠ° ΡΠ΅Π·ΠΈ βΠ³ΡΠ°Π±Π»ΠΈβ β Π·Π°ΡΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·Π²Π°ΠΌΠ΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΊΠ°ΠΊΠ²ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ. Π‘ΡΠΎΡΠ²Π΅ΡΠ½ΠΎ, ΠΎΡΠ²Π°ΡΡΠΉΠΊΠΈ ΠΏΠ»Π°Π½Π° ΡΠ΅Π³Π°, Π½Π°ΡΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π²Π΅Π΄Π½Π°Π³Π° Π²ΠΈΠΆΠ΄Π° ΠΊΡΠ°ΡΠΈΠ²Π°ΡΠ° ΠΊΠ°ΡΡΠΈΠ½Π° Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ, ΠΊΡΠ΄Π΅ΡΠΎ ΠΌΡ ΡΠ΅ ΠΊΠ°Π·Π²Π°: βΠΠΌΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΡΠΊ ΠΈ ΡΡΠΊ, Π° ΡΠ΅ΡΠ°Π²Π°Ρ ΡΠ΅ ΠΏΠΎ ΡΠΎΠ·ΠΈ ΠΈ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½.β
Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° ΠΎΠ±Π΅ΠΌΡΡ Π½Π° ΠΎΠΏΠΈΡΠ°, ΠΊΠΎΠΉΡΠΎ Π±Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ ΠΈ ΡΠ΅Π³Π°, ΠΏΠ°Π΄Π½Π° Π΄ΡΠ°ΡΡΠΈΡΠ½ΠΎ. ΠΡΠΎ ΠΊΠ°ΠΊΡΠ² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΡΠΏΡΡ ΠΌΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ.

ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
