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

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

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

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

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

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

ΠΌΠΎΠ΄ΡΠ» auto_explain ΠΠΊΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅, ΡΠ΅ Π½ΡΠΊΠΎΡ Π·Π°ΡΠ²ΠΊΠ° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΏΠΎ-Π΄ΡΠ»Π³ΠΎ ΠΎΡ Π»ΠΈΠΌΠΈΡΠ°, ΠΊΠΎΠΉΡΠΎ ΡΡΠ΅ ΠΌΡ Π·Π°Π΄Π°Π»ΠΈ, ΡΠΎΠΉ ΠΏΡΠ°Π²ΠΈ
Β«ΡΠ½ΠΈΠΌΠΊΠ°Β» Π½Π° ΠΏΠ»Π°Π½Π° Π½Π° ΡΠ°Π·ΠΈ Π·Π°ΡΠ²ΠΊΠ° ΠΈ Π·Π°ΠΏΠΈΡΠ²Π° Π³ΠΈ Π·Π°Π΅Π΄Π½ΠΎ Π² Π»ΠΎΠ³ ΠΠ·Π³Π»Π΅ΠΆΠ΄Π° Π²ΡΠΈΡΠΊΠΎ Π΅ Π΄ΠΎΠ±ΡΠ΅, ΠΎΡΠΈΠ²Π°ΠΌΠ΅ Π² Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅ ΠΈ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΡΠ°ΠΌβ¦ [ΠΏΠΎΡΡΡΠ½ΠΊΠ° ΡΠ΅ΠΊΡΡ]. ΠΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ Π½ΠΈΡΠΎ Π·Π° Π½Π΅Π³ΠΎ, ΠΎΡΠ²Π΅Π½ ΡΠ°ΠΊΡΠ°, ΡΠ΅ ΡΠΎΠ²Π° Π΅ ΠΎΡΠ»ΠΈΡΠ΅Π½ ΠΏΠ»Π°Π½, Π·Π°ΡΠΎΡΠΎ Π΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Π½ 11 ΠΌΡ..

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

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

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

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

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

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

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

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

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

ΠΠ»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠ»Π°Π½Π° ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌΠ΅ β ΡΡΡΠ°Π½Π½ΠΎ, ΠΈΠΌΠ°ΠΌΠ΅ 3 Π±ΡΡΠ΅ΡΠ° (Π΄Π°Π½Π½ΠΈ) Π±ΠΈΠ»ΠΈ "ΠΈΠ·ΡΠ°Π·Ρ
ΠΎΠ΄Π²Π°Π½ΠΈ" Π² 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 ... Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°, ΠΊΠΎΠΉΡΠΎ ΠΎΠΏΠΈΡΠ²Π°ΡΠ΅ Π΄Π° Π²ΠΌΡΠΊΠ½Π΅ΡΠ΅ β ΠΏΡΠΎΡΡΠΎ Π·Π° Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΠ΅, ΡΠ΅ ΡΠΎΠ·ΠΈ Π·Π°ΠΏΠΈΡ ΡΠ°ΠΌ ΠΏΡΠΈΡΡΡΡΠ²Π°, ΡΠ΅ Π½Π΅ "ΡΠ°Π·ΡΡΡΠ°Π²Π°ΡΠ΅" Foreign Key Ρ Π²Π°ΡΠ΅ΡΠΎ Π²ΠΌΡΠΊΠ²Π°Π½Π΅.
ΠΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π²ΠΌΠ΅ΡΡΠΎ Π΅Π΄Π½Π° Π·Π°ΠΏΠΈΡ Π² ΡΠ΅Π»Π΅Π²Π°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½Π΅ΡΠΎ Ρ, Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΡΠ΅ΡΠ΅Π½Π΅ ΠΎΡ Π²ΡΠΈΡΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ, Π½Π° ΠΊΠΎΠΈΡΠΎ ΡΡ ΡΠ΅ ΠΏΡΠ΅ΠΏΡΠ°ΡΠ°. Π Π½ΠΈΠ΅ Π½Π΅ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΠΌ ΠΎΡ ΡΠΎΠ²Π° β Π·Π°Π΄Π°ΡΠ°ΡΠ° Π½ΠΈ Π΅ Π΄Π° Π·Π°ΠΏΠΈΡΠ΅ΠΌ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ Π½Π°ΠΉ-Π±ΡΡΠ·ΠΎ Ρ Π½Π°ΠΉ-ΠΌΠ°Π»ΠΊΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅. Π’Π°ΠΊΠ° ΡΠ΅ FK β Π΄Π° ΡΠ΅ ΠΌΠ°Ρ Π½Π΅!
Π‘Π»Π΅Π΄Π²Π°ΡΠΈΡΡ ΠΌΠΎΠΌΠ΅Π½Ρ β Π°Π³ΡΠ΅Π³Π°ΡΠΈΡΡΠ° ΠΈ Ρ Π΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ. ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΡΠ΅ Π±ΡΡ Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ β Π·Π°ΡΠΎΡΠΎ Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ Π²Π΅Π΄Π½Π°Π³Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π·Π°ΠΏΠΈΡΠ° Π΄ΠΎΠΉΠ΄Π΅, Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ Π½Π΅ΡΠΎ Π² Π½ΡΠΊΠΎΡ ΡΠ°Π±Π»ΠΈΡΠ° βΠΏΠ»ΡΡ Π΅Π΄Π½ΠΎβ Π½Π°ΠΏΡΠ°Π²ΠΎ Π² ΡΡΠΈΠ³Π΅ΡΠ°. ΠΠΎΠ±ΡΠ΅, ΡΠ΄ΠΎΠ±Π½ΠΎ, Π½ΠΎ Π»ΠΎΡΠΎ Ρ ΡΠΎΠ²Π° β Π²ΠΌΡΠΊΠ²Π°ΡΠ΅ Π΅Π΄ΠΈΠ½ Π·Π°ΠΏΠΈΡ, Π° ΡΡΠ΅ ΠΏΡΠΈΠ½ΡΠ΄Π΅Π½ΠΈ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΠ΅ΡΠ΅ Π½Π΅ΡΠΎ Π΄ΡΡΠ³ΠΎ ΠΎΡ Π΄ΡΡΠ³Π° ΡΠ°Π±Π»ΠΈΡΠ°. Π Π½Π΅ ΡΠ°ΠΌΠΎ ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΠ΅ΡΠ΅ β ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΎ ΠΏΡΠ°Π²ΠΈΡΠ΅ Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ.
Π ΡΠ΅Π³Π° ΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅ΡΠ΅, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΠ°, Π² ΠΊΠΎΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π±ΡΠΎΠΈΡΠ΅ Π±ΡΠΎΡ Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅, ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π»ΠΈ ΠΏΡΠ΅Π· ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ Ρ
ΠΎΡΡ: +1, +1, +1, ..., +1. Π Π²ΡΡΡΠ½ΠΎΡΡ Π½Π΅ Π²ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ β Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΠ±ΠΎΠ±ΡΠΈ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° ΠΊΠΎΠ»Π΅ΠΊΡΠΎΡΠ° ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠΈ Π² Π±Π°Π·Π°ΡΠ° Π·Π° Π΅Π΄ΠΈΠ½ ΠΏΡΡ +10.
ΠΠ°, Π² ΡΠ»ΡΡΠ°ΠΉ Π½Π° Π½ΡΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ "ΡΠ°Π·Π²Π°Π»ΠΈ" Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°ΡΠ° ΡΡΠ»ΠΎΡΡ, Π½ΠΎ ΡΠΎΠ²Π° Π΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ΡΠ΅Π°Π»Π΅Π½ ΡΠ»ΡΡΠ°ΠΉ β Π·Π°ΡΠΎΡΠΎ ΠΈΠΌΠ°ΡΠ΅ Π½ΠΎΡΠΌΠ°Π»Π΅Π½ ΡΡΡΠ²ΡΡ, Π½Π° Π½Π΅Π³ΠΎ ΠΈΠΌΠ° Π±Π°ΡΠ΅ΡΠΈΡ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ°, ΠΈΠΌΠ°ΡΠ΅ ΠΆΡΡΠ½Π°Π» Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΆΡΡΠ½Π°Π» Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°β¦ Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ°, Π½Π΅ ΡΠΈ Π·Π°ΡΠ»ΡΠΆΠ°Π²Π°. ΠΠ΅ ΡΠΈ Π·Π°ΡΠ»ΡΠΆΠ°Π²Π° Π·Π°Π³ΡΠ±Π°ΡΠ° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΡΠ΅ Π·Π° ΡΠΌΠ΅ΡΠΊΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΡΠΈΠ³Π΅ΡΠΈΡΠ΅/FK, ΡΠ΅Π·ΠΈ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈ, ΠΊΠΎΠΈΡΠΎ Π½ΠΎΡΠΈΡΠ΅.
Π‘ΡΡΠΎΡΠΎ Π²Π°ΠΆΠΈ ΠΈ Π·Π° Ρ Π΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ. ΠΠΎΡΡΡΠΏΠ²Π° Π²ΠΈ Π½ΡΠΊΠ°ΠΊΠ²Π° Π·Π°ΡΠ²ΠΊΠ°, ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°ΡΠ΅ Π² ΠΠ Π½ΡΠΊΠ°ΠΊΡΠ² ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, Π·Π°ΠΏΠΈΡΠ²Π°ΡΠ΅ Π² Π±Π°Π·Π°ΡΠ° ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΊΠ°Π·Π²Π°ΡΠ΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ Π½Π΅Π³ΠΎ. ΠΡΠΈΡΠΊΠΎ Π΅ Ρ ΡΠ±Π°Π²ΠΎ, Π΄ΠΎΠΊΠ°ΡΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° Π·Π°ΠΏΠΈΡΠ° Π½Π΅ Π΄ΠΎΠΉΠ΄Π΅ Π²ΡΠΎΡΠΈ ΠΆΠ΅Π»Π°Π΅Ρ Π΄Π° Π·Π°ΠΏΠΈΡΠ΅ ΡΡΡΠΎΡΠΎ β ΠΈ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°, Π° ΡΠΎΠ²Π° Π²Π΅ΡΠ΅ Π΅ Π»ΠΎΡΠΎ. ΠΠ°ΡΠΎΠ²Π°, Π°ΠΊΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π½Π΅ΡΠ΅ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π½ΡΠΊΠ°ΠΊΠ²ΠΈ ID Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° (ΠΎΡΠ½ΠΎΡΠ½ΠΎ Π±Π°Π·Π°ΡΠ°), ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π΅ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅.
ΠΠ΄Π΅Π°Π»Π½ΠΎ Π½ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠΆΠ΄Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ MD5 ΠΎΡ ΡΠ΅ΠΊΡΡΠ° β Π·Π°ΡΠ²ΠΊΠ°ΡΠ°, ΠΏΠ»Π°Π½Π°, ΡΠ°Π±Π»ΠΎΠ½Π°,β¦ ΠΠ·ΡΠΈΡΠ»ΡΠ²Π°ΠΌΠ΅ Π³ΠΎ Π½Π° ΡΡΡΠ°Π½Π°ΡΠ° Π½Π° ΠΊΠΎΠ»Π΅ΠΊΡΠΎΡΠ° ΠΈ "Π½Π°Π»ΠΈΠ²Π°ΠΌΠ΅" Π² Π±Π°Π·Π°ΡΠ° Π³ΠΎΡΠΎΠ²ΠΈΡ ID. ΠΡΠ»ΠΆΠΈΠ½Π°ΡΠ° Π½Π° MD5 ΠΈ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ ΡΠ΅ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅ Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° Π½Π΅ ΡΠ΅ ΡΡΠ΅Π²ΠΎΠΆΠΈΠΌ Π·Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈ ΠΊΠΎΠ»ΠΈΠ·ΠΈΠΈ.

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

Π’ΠΎΠ΅ΡΡ ΡΡΠ±ΠΈΡΠ°ΡΡΡ Π²ΠΈΠ½Π°Π³ΠΈ ΠΈΠΌΠ° ΡΡΡΠΈΠΉΠΌ, Π² ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠ³Π° Π΄Π° Π·Π°ΠΏΠΈΡΠ° Π½ΡΠΆΠ½ΠΈΡΠ΅ ΠΌΠΈ Π΄Π°Π½Π½ΠΈ. ΠΠΎ Π·Π° Π΄Π° Π²ΠΈΠ΄ΠΈ Π±Π°Π·Π°ΡΠ° ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ, Π° Π½ΡΠΊΠΎΠΉ Π΄Π° Π½Π΅ Π΅ Π±Π»ΠΎΠΊΠΈΡΠ°Π½, ΠΎΡΠ°ΠΊΠ²Π°ΠΉΠΊΠΈ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ ΠΈΠΌ, COPY ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΊΡΡΠ²Π° Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎΡΡ. ΠΠ° Π½Π°Ρ Π½Π°ΠΉ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ ΡΠ΅ ΠΎΠΊΠ°Π·Π° ΠΎΠΊΠΎΠ»ΠΎ 100ms β Π·Π°ΡΠ²Π°ΡΡΠΌΠ΅ ΠΈ Π²Π΅Π΄Π½Π°Π³Π° ΠΎΡΠ½ΠΎΠ²ΠΎ ΠΎΡΠ²Π°ΡΡΠΌΠ΅ Π½Π° ΡΡΡΠ°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ°. Π Π°ΠΊΠΎ Π² Π½ΡΠΊΠ°ΠΊΠ²ΠΈ ΠΏΠΈΠΊΠΎΠ²Π΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠ°Π²ΠΈΠΌ ΠΏΡΠ» Π΄ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΏΡΠ΅Π΄Π΅Π».
ΠΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡ
ΠΌΠ΅, ΡΠ΅ Π·Π° ΡΠ°ΠΊΡΠ² ΠΏΡΠΎΡΠΈΠ» Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π²ΡΡΠΊΠ° Π°Π³ΡΠ΅Π³Π°ΡΠΈΡ, ΠΏΡΠΈ ΠΊΠΎΡΡΠΎ Π·Π°ΠΏΠΈΡΠΈΡΠ΅ ΡΠ΅ ΡΡΠ±ΠΈΡΠ°Ρ Π² ΠΏΠ°ΠΊΠ΅ΡΠΈ β Π΅ Π·Π»ΠΎ. ΠΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΎΡΠΎ Π·Π»ΠΎ Π΅ INSERT ... VALUES ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° 1000 Π·Π°ΠΏΠΈΡΠ°. ΠΠ°ΡΠΎΡΠΎ Π² ΡΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ·Π½ΠΈΠΊΠ²Π° ΠΏΠΈΠΊ Π½Π° Π·Π°ΠΏΠΈΡ ΠΏΠΎ Π½ΠΎΡΠΈΡΠ΅Π»Ρ, ΠΈ Π²ΡΠΈΡΠΊΠΈ ΠΎΡΡΠ°Π½Π°Π»ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°Ρ Π΄Π° Π·Π°ΠΏΠΈΡΠ²Π°Ρ Π½Π° Π΄ΠΈΡΠΊΠ°, ΡΠ΅ ΡΠ°ΠΊΠ°Ρ.
ΠΠ° Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π°Ρ ΡΠ°ΠΊΠΈΠ²Π° Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ, ΠΏΡΠΎΡΡΠΎ Π½Π΅ Π°Π³ΡΠ΅Π³ΠΈΡΠ°ΠΉΡΠ΅ Π½ΠΈΡΠΎ, Π½Π΅ Π±ΡΡΠ΅ΡΠΈΠ·ΠΈΡΠ°ΠΉΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠΎ. Π Π°ΠΊΠΎ Π²ΡΠ΅ ΠΏΠ°ΠΊ Π²ΡΠ·Π½ΠΈΠΊΠ½Π΅ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ Π½Π° Π΄ΠΈΡΠΊΠ° (Π·Π° ΡΠ°ΡΡΠΈΠ΅, Stream API Π² Node.js ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈ ΡΠΎΠ²Π°) β ΠΎΡΠ»ΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ²Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅. ΠΡΠΎ ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΡΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΎ Π΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ β Π·Π°ΠΏΠΈΡΠ²Π°ΠΉΡΠ΅ Π² Π½Π΅Π³ΠΎ ΠΎΡ Π½Π°ΡΡΡΠΏΠ°Π½Π°ΡΠ° ΠΎΠΏΠ°ΡΠΊΠ°. Π Π΄ΠΎΠΊΠ°ΡΠΎ Π΅ Π·Π°Π΅ΡΠΎ β Π²Π·Π΅ΠΌΠ΅ΡΠ΅ ΡΠ»Π΅Π΄Π²Π°ΡΠΎΡΠΎ, ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΠΎΡ ΠΏΡΠ»Π°, ΠΈ Π·Π°ΠΏΠΈΡΠ²Π°ΠΉΡΠ΅ Π² Π½Π΅Π³ΠΎ.
ΠΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΊΡΠ² ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π·Π° Π·Π°ΠΏΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈΠΌΠ°Ρ ΠΌΠ΅ ΠΎΠΊΠΎΠ»ΠΎ 4K write ops, Π° ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ Π½Π°ΠΌΠ°Π»ΠΈΡ ΠΌΠ΅ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Ρ 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
