Π Π΄ΠΎΠΊΠ»Π°Π΄Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ SQL-Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΠ³Π΄Π° ΠΈΡ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ Π² ΡΡΡΠΊΠΈ, Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² PostgreSQL β ΡΠΎΡΠ½ΠΈ.
ΠΠ°ΠΊΠΈΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π½Π°ΠΌ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΈ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ ΠΆΠΈΠ·Π½Ρ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
ΠΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ΅Π½ ΡΠ°Π·Π±ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΈ ΡΠ°Π·Π½ΡΠ΅ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ SQL-Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ²ΡΡ DBA-Π·Π°Π΄Π°Ρ Π² PostgreSQL β ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅
ΠΠ΅Π½Ρ Π·ΠΎΠ²ΡΡ ΠΠΈΡΠΈΠ»Π» ΠΠΎΡΠΎΠ²ΠΈΠΊΠΎΠ², Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡ
Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ Π²Π°ΠΌ ΡΠ°ΡΡΠΊΠ°ΠΆΡ, ΠΊΠ°ΠΊ ΠΌΡ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½Π°Π΄ΠΎ Π½Π΅ Β«ΡΠ°ΡΠΊΠΎΠ²ΡΡΡΡΡΒ» ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°, Π° ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠ°ΡΡΠΎΠ²ΠΎ. ΠΠΎΠ³Π΄Π° Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ, ΠΈ Π²Π°ΠΌ Π½Π°Π΄ΠΎ Π½Π°ΠΉΡΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠΎΠΎΠ±ΡΠ΅, Β«Π’Π΅Π½Π·ΠΎΡΒ» Π΄Π»Ρ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° Π½Π°ΡΠΈΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² β ΡΡΠΎ
Π§ΡΠΎΠ±Ρ Π²ΡΠ΅ ΠΎΠ½ΠΈ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°Π»ΠΈΡΡ β Ρ Π½Π°Ρ 10 ΡΠ΅Π½ΡΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΉ ΡΡΡΠ°Π½Π΅, Π² Π½ΠΈΡ β Π±ΠΎΠ»ΡΡΠ΅ 1000 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
Π‘ PostgreSQL ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ 2008 Π³ΠΎΠ΄Π° ΠΈ Π½Π°ΠΊΠΎΠΏΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΌΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ β ΡΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅, Π°Π½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅, Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π²Π½Π΅ΡΠ½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ β Π±ΠΎΠ»ΡΡΠ΅ 400TB. Π’ΠΎΠ»ΡΠΊΠΎ Β«Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π΅Β» ΠΎΠΊΠΎΠ»ΠΎ 250 ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², Π° ΡΡΠΌΠΌΠ°ΡΠ½ΠΎ ΠΠ-ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠΌ β ΠΎΠΊΠΎΠ»ΠΎ 1000.
SQL β Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΡΠ·ΡΠΊ. ΠΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΠ΅ Π½Π΅ Β«ΠΊΠ°ΠΊΒ» ΡΡΠΎ-ΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π° Β«ΡΡΠΎΒ» Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ. Π‘Π£ΠΠ Π»ΡΡΡΠ΅ Π·Π½Π°Π΅Ρ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ JOIN β ΠΊΠ°ΠΊ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π²Π°ΡΠΈ ΡΠ°Π±Π»ΠΈΡΠΊΠΈ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ Π½Π°Π»ΠΎΠΆΠΈΡΡ, ΡΡΠΎ ΠΏΠΎΠΉΠ΄Π΅Ρ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ, ΡΡΠΎ Π½Π΅Ρβ¦
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π‘Π£ΠΠ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ: Β«ΠΠ΅Ρ, Π²ΠΎΡ ΡΡΠΈ Π΄Π²Π΅ ΡΠ°Π±Π»ΠΈΡΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉ Π² ΡΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈΒ», Π½ΠΎ PostgreSQL ΡΠ°ΠΊ Π½Π΅ ΡΠΌΠ΅Π΅Ρ. ΠΡΠΎ ΠΎΡΠΎΠ·Π½Π°Π½Π½Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π²Π΅Π΄ΡΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²: Β«ΠΡΡΡΠ΅ ΠΌΡ Π΄ΠΎΠΏΠΈΠ»ΠΈΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡ Π·Π°ΠΏΡΠΎΡΠ°, ΡΠ΅ΠΌ ΡΠ°Π·ΡΠ΅ΡΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊΠΈΠΌΠΈ-ΡΠΎ Ρ ΠΈΠ½ΡΠ°ΠΌΠΈΒ».
ΠΠΎ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ PostgreSQL Π½Π΅ Π΄Π°Π΅Ρ Β«ΡΠ½Π°ΡΡΠΆΠΈΒ» ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ, ΠΎΠ½ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Ρ Π½Π΅Π³ΠΎ Β«Π²Π½ΡΡΡΠΈΒ», ΠΊΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ ΡΠ²ΠΎΠΉ Π·Π°ΠΏΡΠΎΡ, ΠΈ Π³Π΄Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Ρ Π½Π΅Π³ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠΎΠΎΠ±ΡΠ΅, Ρ ΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ [ΠΊ DBA] ΠΎΠ±ΡΡΠ½ΠΎ? Β«ΠΠΎΡ ΠΌΡ ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Π·Π°ΠΏΡΠΎΡ, ΠΈ Ρ Π½Π°Ρ Π²ΡΠ΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π²ΡΠ΅ ΠΏΠΎΠ²ΠΈΡΠ»ΠΎ, ΡΡΠΎ-ΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡβ¦ ΠΠ΅Π΄Π° ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ!Β»
ΠΡΠΈΡΠΈΠ½Ρ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅:
- Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π·Π°ΠΏΡΠΎΡΠ°
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ: Β«Π‘Π΅ΠΉΡΠ°Ρ Ρ Π² SQL Π΅ΠΌΡ 10 ΡΠ°Π±Π»ΠΈΡΠ΅ΠΊ ΡΠ΅ΡΠ΅Π· JOIN…Β» β ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ, ΡΡΠΎ Π΅Π³ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ ΡΡΠ΄Π΅ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Β«ΡΠ°Π·Π²ΡΠΆΡΡΡΡΒ», ΠΈ ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠΈΡ Π²ΡΠ΅ Π±ΡΡΡΡΠΎ. ΠΠΎ ΡΡΠ΄Π΅Ρ Π½Π΅ Π±ΡΠ²Π°Π΅Ρ, ΠΈ Π»ΡΠ±Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠΈ ΡΠ°ΠΊΠΎΠΉ Π²Π°ΡΠΈΠ°ΡΠΈΠ²Π½ΠΎΡΡΠΈ (10 ΡΠ°Π±Π»ΠΈΡ Π² ΠΎΠ΄Π½ΠΎΠΌ FROM) Π²ΡΠ΅Π³Π΄Π° Π΄Π°Π΅Ρ ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΠΏΠΎΠ³ΡΠ΅ΡΠ½ΠΎΡΡΡ. [ΡΡΠ°ΡΡΡ ] - Π½Π΅Π°ΠΊΡΡΠ°Π»ΡΠ½Π°Ρ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°
ΠΠΎΠΌΠ΅Π½Ρ ΠΎΡΠ΅Π½Ρ Π°ΠΊΡΡΠ°Π»Π΅Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ PostgreSQL, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ Π΄Π°ΡΠ°ΡΠ΅Ρ Β«Π²Π»ΠΈΠ»ΠΈΒ» Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, Π΄Π΅Π»Π°Π΅ΡΠ΅ Π·Π°ΠΏΡΠΎΡ β Π° ΠΎΠ½ Ρ Π²Π°Ρ Β«ΡΠ΅ΠΊΡΠΊΠ°Π½ΠΈΡΒ» ΠΏΠΎ ΡΠ°Π±Π»ΠΈΡΠΊΠ΅. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΡΠ΅ΡΠ° Π² Π½Π΅ΠΉ Π»Π΅ΠΆΠ°Π»ΠΎ 10 Π·Π°ΠΏΠΈΡΠ΅ΠΉ, Π° ΡΠ΅Π³ΠΎΠ΄Π½Ρ 10 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ², Π½ΠΎ PostgreSQL ΠΎΠ± ΡΡΠΎΠΌ Π΅ΡΠ΅ Π½Π΅ Π² ΠΊΡΡΡΠ΅, ΠΈ Π½Π°Π΄ΠΎ Π΅ΠΌΡ ΠΎΠ± ΡΡΠΎΠΌ ΠΏΠΎΠ΄ΡΠΊΠ°Π·Π°ΡΡ. [ΡΡΠ°ΡΡΡ ] - Β«Π·Π°ΡΡΠΊΒ» ΠΏΠΎ ΡΠ΅ΡΡΡΡΠ°ΠΌ
ΠΡ ΠΏΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΡΡ ΠΈ ΡΡΠΆΠ΅Π»ΡΡ Π½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ Π±Π°Π·Ρ ΠΏΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ Π½Π° ΡΠ»Π°Π±ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ Π΄ΠΈΡΠΊΠ°, ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. Π Π²ΡΠ΅β¦ ΠΠ΄Π΅-ΡΠΎ Π΅ΡΡΡ ΠΏΠΎΡΠΎΠ»ΠΎΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π²ΡΡΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²Ρ ΠΏΡΡΠ³Π½ΡΡΡ ΡΠΆΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅. - Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ
Π‘Π»ΠΎΠΆΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, Π½ΠΎ ΠΎΠ½ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π°ΠΊΡΡΠ°Π»ΡΠ½Ρ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΡΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² (INSERT, UPDATE, DELETE) β ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ΅ΠΌΠ°.
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½Π°
β¦ Π Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΠΏΠ»Π°Π½! ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²Π½ΡΡΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΠ»Π°Π½ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° Π΄Π»Ρ PostgreSQL β ΡΡΠΎ Π΄Π΅ΡΠ΅Π²ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ. ΠΠΌΠ΅Π½Π½ΠΎ ΡΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠΌ Π±ΡΠ» ΠΏΡΠΈΠ·Π½Π°Π½ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ.
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ·Π΅Π» Π΄Π΅ΡΠ΅Π²Π° β ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ: ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ ΠΈΠ»ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°, ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΊΠ°ΡΡΡ, ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π΄Π²ΡΡ ΡΠ°Π±Π»ΠΈΡ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ±ΠΎΡΠΎΠΊ. ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠ° β ΠΏΡΠΎΡ ΠΎΠ΄ ΠΏΠΎ ΡΠ·Π»Π°ΠΌ ΡΡΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π°.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠ»Π°Π½ Π·Π°ΠΏΡΠΎΡΠ°, ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± β Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ EXPLAIN
. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΠ΅Π°Π»ΡΠ½ΡΠΌΠΈ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ, ΡΠΎ Π΅ΡΡΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ Π½Π° Π±Π°Π·Π΅ β EXPLAIN (ANALYZE, BUFFERS) SELECT ...
.
ΠΠ»ΠΎΡ ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ: ΠΊΠΎΠ³Π΄Π° Π²Ρ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Β«Π·Π΄Π΅ΡΡ ΠΈ ΡΠ΅ΠΉΡΠ°ΡΒ», ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠΈ. ΠΡΠ»ΠΈ ΠΆΠ΅ Π²Ρ Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π²ΡΡΠΎΠΊΠΎΠ½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠΎΠΈΡ ΠΏΠΎΠ΄ ΡΠΈΠ»ΡΠ½ΡΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π΄Π°Π½Π½ΡΡ , ΠΈ Π²ΠΈΠ΄ΠΈΡΠ΅: Β«ΠΠΉ! ΠΠΎΡ ΡΡΡ Ρ Π½Π°Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΡΡ Π·Π°ΠΏΡΠΎΡ.Β» ΠΠΎΠ»ΡΠ°ΡΠ°, ΡΠ°Ρ Π½Π°Π·Π°Π΄ β ΠΏΠΎΠΊΠ° Π²Ρ Π±Π΅Π³Π°Π»ΠΈ ΠΈ Π΄ΠΎΡΡΠ°Π²Π°Π»ΠΈ ΡΡΠΎΡ Π·Π°ΠΏΡΠΎΡ ΠΈΠ· Π»ΠΎΠ³ΠΎΠ², Π½Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ ΡΠ½ΠΎΠ²Π° Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, Ρ Π²Π°Ρ Π²Π΅ΡΡ Π΄Π°ΡΠ°ΡΠ΅Ρ ΠΈ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ. ΠΡ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅, ΡΡΠΎΠ±Ρ ΠΎΡΠ»Π°Π΄ΠΈΡΡ β Π° ΠΎΠ½ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π±ΡΡΡΡΠΎ! Π Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ½ΡΡΡ Β«ΠΏΠΎΡΠ΅ΠΌΡΒ», ΠΏΠΎΡΠ΅ΠΌΡ Π±ΡΠ»ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠΎΠ²Π½ΠΎ Π² ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΡΠΎΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΡΠΌΠ½ΡΠ΅ Π»ΡΠ΄ΠΈ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ
ΠΡΠ»ΠΈ ΠΎΠ½ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, ΡΡΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π·Π°ΠΏΡΠΎΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄ΠΎΠ»ΡΡΠ΅ ΡΠΎΠΉ Π³ΡΠ°Π½ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Π΅ΠΌΡ ΡΠΊΠ°Π·Π°Π»ΠΈ, ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ Β«ΡΠ½ΠΈΠΌΠΎΠΊΒ» ΠΏΠ»Π°Π½Π° ΡΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ ΠΏΠΈΡΠ΅Ρ ΠΈΡ Π²ΠΌΠ΅ΡΡΠ΅ Π² Π»ΠΎΠ³.
ΠΡΠΎΠ΄Π΅ Π²ΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ Ρ
ΠΎΡΠΎΡΠΎ, ΠΈΠ΄Π΅ΠΌ Π² Π»ΠΎΠ³ ΠΈ Π²ΠΈΠ΄ΠΈΠΌ ΡΠ°ΠΌβ¦ [ΠΏΠΎΡΡΡΠ½ΠΊΠ° ΡΠ΅ΠΊΡΡΠ°]. ΠΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π½ΠΈΡΠ΅Π³ΠΎ ΠΏΡΠΎ Π½Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ ΡΠ°ΠΊΡΠ°, ΡΡΠΎ ΡΡΠΎ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΏΠ»Π°Π½, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΡΡ 11ΠΌΡ.
ΠΡΠΎΠ΄Π΅ Π²ΡΠ΅ Ρ ΠΎΡΠΎΡΠΎ β Π½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΎ. ΠΡΠΎΠΌΠ΅ ΠΎΠ±ΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΡΠΎΠ±ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ ΠΈ Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌ. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΡΠ°ΠΊΡΡ Β«Π»Π°ΡΡΡ ΡΒ» plain text Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅Π½Π°Π³Π»ΡΠ΄Π½ΠΎ.
ΠΠΎ Π΄Π°ΠΆΠ΅ ΠΏΡΡΡΡ Π½Π΅Π½Π°Π³Π»ΡΠ΄Π½ΠΎ, ΠΏΡΡΡΡ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ, Π½ΠΎ Π΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΠ°ΠΏΠΈΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ:
- Π ΡΠ·Π»Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠΌΠΌΠ° ΠΏΠΎ ΡΠ΅ΡΡΡΡΠ°ΠΌ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π° ΠΏΠΎΠ΄ Π½ΠΈΠΌ. Π’ΠΎ Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ ΡΠ°ΠΊ ΡΠ·Π½Π°ΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΠΎΡ ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π½Π° ΡΡΠΎΠΌ Index Scan Π±ΡΠ»ΠΎ ΠΏΠΎΡΡΠ°ΡΠ΅Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ β Π½Π΅Π»ΡΠ·Ρ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ΄ Π½ΠΈΠΌ Π΅ΡΡΡ ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΌΠΎΡΡΠ΅ΡΡ, Π½Π΅Ρ Π»ΠΈ Π²Π½ΡΡΡΠΈ Β«Π΄Π΅ΡΠ΅ΠΉΒ» ΠΈ ΡΡΠ»ΠΎΠ²Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , CTE β ΠΈ Π²ΡΡΠΈΡΠ°ΡΡ ΡΡΠΎ Π²ΡΠ΅ Β«Π² ΡΠΌΠ΅Β».
- ΠΡΠΎΡΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ: Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π½Π° ΡΠ·Π»Π΅, β ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ·Π»Π°. ΠΡΠ»ΠΈ ΡΡΠΎΡ ΡΠ·Π΅Π» Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΈΠΊΠ»Π° ΠΏΠΎ Π·Π°ΠΏΠΈΡΡΠΌ ΡΠ°Π±Π»ΠΈΡΡ, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·, ΡΠΎ Π² ΠΏΠ»Π°Π½Π΅ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ loops β ΡΠΈΠΊΠ»ΠΎΠ² ΡΡΠΎΠ³ΠΎ ΡΠ·Π»Π°. ΠΠΎ ΡΠ°ΠΌΠΎ Π²ΡΠ΅ΠΌΡ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΡΠ°Π΅ΡΡΡ Π² ΠΏΠ»Π°Π½Π΅ ΠΏΡΠ΅ΠΆΠ½ΠΈΠΌ. Π’ΠΎ Π΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, Π° ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΆΠ΅ ΡΡΠΎΡ ΡΠ·Π΅Π» Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΡΡ Π²ΡΠ΅Π³ΠΎ ΡΡΠΌΠΌΠ°ΡΠ½ΠΎ, Π½Π°Π΄ΠΎ ΠΎΠ΄Π½ΠΎ ΡΠΌΠ½ΠΎΠΆΠ°ΡΡ Π½Π° Π΄ΡΡΠ³ΠΎΠ΅ β ΠΎΠΏΡΡΡ-ΡΠ°ΠΊΠΈ Β«Π² ΡΠΌΠ΅Β».
ΠΡΠΈ ΡΠ°ΠΊΠΈΡ ΡΠ°ΡΠΊΠ»Π°Π΄Π°Ρ ΠΏΠΎΠ½ΡΡΡ Β«ΠΡΠΎ ΡΠ°ΠΌΠΎΠ΅ ΡΠ»Π°Π±ΠΎΠ΅ Π·Π²Π΅Π½ΠΎ?Β» ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ΡΠ΅Π°Π»ΡΠ½ΠΎ. ΠΠΎΡΡΠΎΠΌΡ Π΄Π°ΠΆΠ΅ ΡΠ°ΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π² Β«ΠΌΠ°Π½ΡΠ°Π»Π΅Β» ΠΏΠΈΡΡΡ, ΡΡΠΎ Β«ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΠ»Π°Π½Π° β ΡΡΠΎ ΠΈΡΠΊΡΡΡΡΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π½Π°Π΄ΠΎ ΡΡΠΈΡΡΡΡ, ΠΎΠΏΡΡ…Β».
ΠΠΎ Ρ Π½Π°Ρ 1000 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΈΠ· Π½ΠΈΡ ΡΡΠΎΡ ΠΎΠΏΡΡ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² Π³ΠΎΠ»ΠΎΠ²Ρ. Π―, ΡΡ, ΠΎΠ½ β Π·Π½Π°ΡΡ, Π° ΠΊΡΠΎ-ΡΠΎ Π²ΠΎΠ½ ΡΠ°ΠΌ β ΡΠΆΠ΅ Π½Π΅Ρ. ΠΠΎΠΆΠ΅Ρ, ΠΎΠ½ Π½Π°ΡΡΠΈΡΡΡ, Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈ Π½Π΅Ρ, Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΅ΠΌΡ Π½Π°Π΄ΠΎ ΡΠΆΠ΅ ΡΠ΅ΠΉΡΠ°Ρ β Π° ΠΎΡΠΊΡΠ΄Π° Π±Ρ Π΅ΠΌΡ Π²Π·ΡΡΡ ΡΡΠΎΡ ΠΎΠΏΡΡ.
ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠ»Π°Π½Π°
ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΏΠΎΠ½ΡΠ»ΠΈ β ΡΡΠΎΠ±Ρ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Ρ ΡΡΠΈΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, Π½Π°ΠΌ Π½ΡΠΆΠ½Π° Ρ
ΠΎΡΠΎΡΠ°Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠ»Π°Π½Π°.
ΠΡ ΠΏΠΎΡΠ»ΠΈ ΡΠ½Π°ΡΠ°Π»Π° Β«ΠΏΠΎ ΡΡΠ½ΠΊΡΒ» β Π΄Π°Π²Π°ΠΉΡΠ΅-ΠΊΠ° Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ ΠΏΠΎΠΈΡΠ΅ΠΌ, ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ.
ΠΠΎ, ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Β«ΠΆΠΈΠ²ΡΡ
Β» ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ, ΡΠΎΠ²ΡΠ΅ΠΌ ΠΌΠ°Π»ΠΎ β Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ, ΠΎΠ΄Π½ΠΎ:
- ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΡΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ·Π»Π°
- Π²ΡΠ΅ΠΌΡ ΡΡΠΌΠΌΠ°ΡΠ½ΠΎΠ΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Ρ
- ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ»ΠΎ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΎ, ΠΈ ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ
- ΡΠ°ΠΌΠΎ ΡΠ΅Π»ΠΎ ΡΠ·Π»Π°
Π’Π°ΠΊΠΆΠ΅ Ρ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ° Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π΅Π»ΠΈΡΡΡΡ Π°ΡΡ ΠΈΠ²ΠΎΠΌ ΡΡΡΠ»ΠΎΠΊ. Π’Ρ ΠΊΠΈΠ½ΡΠ» ΡΡΠ΄Π° ΡΠ²ΠΎΠΉ ΠΏΠ»Π°Π½ ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ: Β«ΠΠΉ, ΠΠ°ΡΡ, Π²ΠΎΡ ΡΠ΅Π±Π΅ ΡΡΡΠ»ΠΊΠ°, ΡΠ°ΠΌ ΡΡΠΎ-ΡΠΎ Π½Π΅ ΡΠ°ΠΊΒ».
ΠΠΎ Π΅ΡΡΡ ΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π³ΡΠΎΠΌΠ°Π΄Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Β«ΠΊΠΎΠΏΠΈΠΏΠ°ΡΡΡΒ». Π’Ρ Π±Π΅ΡΠ΅ΡΡ ΠΊΡΡΠΎΠΊ Π»ΠΎΠ³Π°, Π·Π°ΡΠΎΠ²ΡΠ²Π°Π΅ΡΡ ΡΡΠ΄Π°, ΠΈ ΡΠ½ΠΎΠ²Π°, ΠΈ ΡΠ½ΠΎΠ²Π°.
ΠΠΎ-Π²ΡΠΎΡΡΡ
, Π½Π΅Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
β ΡΠ΅Ρ
ΡΠ°ΠΌΡΡ
buffers, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡ EXPLAIN (ANALYZE, BUFFERS)
, ΡΡΡ ΠΌΡ Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌ. ΠΠ½ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΠΌΠ΅Π΅Ρ ΠΈΡ
ΡΠ°Π·Π±ΠΈΡΠ°ΡΡ, ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΈ Ρ Π½ΠΈΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠΈΡΠ°Π΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π°Π½Π½ΡΡ
ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, ΡΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Β«ΡΠ°Π·Π»ΠΎΠΆΠΈΡΡΡΡΒ» ΠΏΠΎ Π΄ΠΈΡΠΊΡ ΠΈ ΠΊΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½Π°.
Π’ΡΠ΅ΡΠΈΠΉ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ β ΠΎΡΠ΅Π½Ρ ΡΠ»Π°Π±ΠΎΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠΎΠΌΠΌΠΈΡΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ΅Π»ΠΊΠΈΠ΅, Ρ ΠΎΡΠΎΡΠΎ Π΅ΡΠ»ΠΈ ΡΠ°Π· Π² ΠΏΠΎΠ»Π³ΠΎΠ΄Π°, ΠΈ ΠΊΠΎΠ΄ Π½Π° Perl’Π΅.
ΠΠΎ ΡΡΠΎ Π²ΡΠ΅ Β«Π»ΠΈΡΠΈΠΊΠ°Β», Ρ ΡΡΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΊΠ°ΠΊ-ΡΠΎ ΠΆΠΈΡΡ, Π½ΠΎ Π΅ΡΡΡ ΠΎΠ΄Π½Π° Π²Π΅ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠ²Π΅ΡΠ½ΡΠ»Π° ΠΎΡ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ°. ΠΡΠΎ ΠΎΡΠΈΠ±ΠΊΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Common Table Expression (CTE) ΠΈ ΡΠ°Π·Π½ΡΡ
Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠ·Π»ΠΎΠ² Π²ΡΠΎΠ΄Π΅ InitPlan/SubPlan.
ΠΡΠ»ΠΈ Π²Π΅ΡΠΈΡΡ ΡΡΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅, ΡΠΎ Ρ Π½Π°Ρ ΡΡΠΌΠΌΠ°ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ·Π»Π° Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Π³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°. ΠΡΠ΅ ΠΏΡΠΎΡΡΠΎ β ΠΈΠ· ΡΠ·Π»Π° CTE Scan Π½Π΅ Π²ΡΡΠ»ΠΈ Π²ΡΠ΅ΠΌΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΡΠΎΠΉ CTE. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΡΠΆΠ΅ Π½Π΅ Π·Π½Π°Π΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠ²Π΅ΡΠ°, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΆΠ΅ Π·Π°Π½ΡΠ»ΠΎ ΡΠ°ΠΌΠΎ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ CTE.
Π’ΡΡ ΠΌΡ ΠΏΠΎΠ½ΡΠ»ΠΈ, ΡΡΠΎ ΠΏΠΎΡΠ° ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠ΅ β ΡΡΠ°-ΡΡΠ°! ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π³ΠΎΠ²ΠΎΡΠΈΡ: Β«Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ ΡΠ²ΠΎΠ΅ Π½Π°ΠΏΠΈΡΠ΅ΠΌ, ΡΡΠΏΠ΅Ρ ΠΏΡΠΎΡΡΠΎ Π±ΡΠ΄Π΅Ρ!Β»
ΠΠ·ΡΠ»ΠΈ ΡΠΈΠΏΠΈΡΠ½ΡΠΉ Π΄Π»Ρ web-ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΡΡΠ΅ΠΊ: ΡΠ΄ΡΠΎ Π½Π° Node.js + Express, Π½Π°ΡΡΠ½ΡΠ»ΠΈ Bootstrap ΠΈ Π΄Π»Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠΎΠΊ ΠΊΡΠ°ΡΠΈΠ²ΡΡ β D3.js. Π Π½Π°ΡΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΠΏΡΠ°Π²Π΄Π°Π»ΠΈΡΡ β ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΎΡΠΎΡΠΈΠΏ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π·Π° 2 Π½Π΅Π΄Π΅Π»ΠΈ:
- ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΠ°ΡΡΠ΅Ρ ΠΏΠ»Π°Π½Π°
Π’ΠΎ Π΅ΡΡΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΠΎΠ±ΡΠ΅ Π»ΡΠ±ΠΎΠΉ ΠΏΠ»Π°Π½ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡ ΠΈΠ· ΡΠ΅Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ PostgreSQL. - ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ·Π»ΠΎΠ² β CTE Scan, InitPlan, SubPlan
- Π°Π½Π°Π»ΠΈΠ· ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ buffers β Π³Π΄Π΅ ΡΡΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ ΡΠΈΡΠ°ΡΡΡΡ, Π³Π΄Π΅ ΠΈΠ· Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΡΡΠ°, Π³Π΄Π΅ Ρ Π΄ΠΈΡΠΊΠ°
- ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΡ
Π§ΡΠΎΠ±Ρ Π½Π΅ Π² Π»ΠΎΠ³Π΅ Π²ΡΠ΅ Π²ΠΎΡ ΡΡΠΎ Π²ΠΎΡ Β«ΠΊΠΎΠΏΠ°ΡΡΒ», Π° Π²ΠΈΠ΄Π΅ΡΡ Β«ΡΠ°ΠΌΠΎΠ΅ ΡΠ»Π°Π±ΠΎΠ΅ Π·Π²Π΅Π½ΠΎΒ» ΡΡΠ°Π·Ρ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅.
ΠΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ β ΡΡΠ°Π·Ρ Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°. ΠΠΎ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°ΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΆΠ΅ Π½Π΅ Ρ ΠΏΠΎΠ»Π½ΡΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ»Π°Π½Π°, Π° Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΠΎΠΊΠΎΡΠΎΡΠ΅. ΠΠ΅Π΄Ρ Π²ΡΠ΅ ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΡ ΡΠΆΠ΅ ΡΠ°ΡΠΏΠ°ΡΡΠΈΠ»ΠΈ ΠΈ Π² ΡΡΠΎΡΠΎΠ½Ρ ΠΈΡ
Π½Π°Π»Π΅Π²ΠΎ-Π½Π°ΠΏΡΠ°Π²ΠΎ Π·Π°ΠΊΠΈΠ½ΡΠ»ΠΈ, Π° ΠΏΠΎΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ ΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΡΡ ΡΡΡΠΎΡΠΊΡ, ΡΡΠΎ ΡΡΠΎ Π·Π° ΡΠ·Π΅Π»: 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) ΠΏΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ·Π»Π°ΠΌ. ΠΡΠΎ ΡΡΠΎΠΈΠ»ΠΎ Π½Π°ΠΌ ΠΊ ΠΏΠ΅ΡΠ²ΡΠΌ 2 Π½Π΅Π΄Π΅Π»ΡΠΌ Π½Π° ΠΏΡΠΎΡΠΎΡΠΈΠΏ Π΅ΡΠ΅ ΠΏΠ»ΡΡΠΎΠΌ Π½Π΅Π΄Π΅Π»ΠΈ 4.
ΠΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ°ΠΊΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ β Π΄Π΅Π»Π°Π΅ΠΌ 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 Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ backend-ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ΅ΡΠ΅Π²ΡΠΌΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΠΌΠΈ, Π΄Π° ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Ρ ΠΊΠ°ΠΊΠΈΠΌΠΈ-ΡΠΎ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ .
Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΌΡ Β«Π½Π°ΡΡΠ³ΠΈΠ²Π°Π΅ΠΌΒ» Π΄Π²Π° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ: ΠΏΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎΠ±Ρ Β«ΡΠ»ΡΡΠ°ΡΡΒ» ΡΠ°ΠΌ Π»ΠΎΠ³ ΠΈ Π΅Π³ΠΎ ΠΊ ΡΠ΅Π±Π΅ Π·Π°Π±ΠΈΡΠ°ΡΡ, Π° Π²ΡΠΎΡΠΎΠ΅ β ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ Ρ Π±Π°Π·Ρ ΡΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ. Β«Π Π²ΠΎΡ Π² Π»ΠΎΠ³Π΅ ΠΏΡΠΈΠ»Π΅ΡΠ΅Π»ΠΎ, ΡΡΠΎ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π° ΡΠ°Π±Π»ΠΈΡΠΊΠ° Ρ 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 Π½Π°Π΄ΠΎ ΠΏΡΠ΅ΡΡΠ²Π°ΡΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎΡΡΡΡ. ΠΠ»Ρ Π½Π°Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ ΠΏΠΎΡΡΠ΄ΠΊΠ° 100ΠΌΡ β Π·Π°ΠΊΡΡΠ²Π°Π΅ΠΌ ΠΈ ΡΡΠ°Π·Ρ ΡΠ½ΠΎΠ²Π° ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ Π½Π° ΡΡ ΠΆΠ΅ ΡΠ°Π±Π»ΠΈΡΡ. Π Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π½Π΅ Ρ
Π²Π°ΡΠ°Π΅Ρ ΠΏΡΠΈ ΠΊΠ°ΠΊΠΈΡ
-ΡΠΎ ΠΏΠΈΠΊΠ°Ρ
, ΡΠΎ ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ ΠΏΡΠ»ΠΈΠ½Π³ Π΄ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄Π΅Π»Π°.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΡ Π²ΡΡΡΠ½ΠΈΠ»ΠΈ, ΡΡΠΎ Π΄Π»Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΈΠ»Ρ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π»ΡΠ±Π°Ρ Π°Π³ΡΠ΅Π³Π°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΠΈΡΠΈ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡΡ Π² ΠΏΠ°ΠΊΠ΅ΡΡ β ΡΡΠΎ Π·Π»ΠΎ. ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π»ΠΎ β ΡΡΠΎ INSERT ... VALUES
ΠΈ Π΄Π°Π»ΡΡΠ΅ 1000 Π·Π°ΠΏΠΈΡΠ΅ΠΉ. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ Π² ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΠΈΠΊ Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎ Π½ΠΎΡΠΈΡΠ΅Π»Ρ, ΠΈ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅, ΠΏΡΡΠ°ΡΡΠΈΠ΅ΡΡ ΡΡΠΎ-ΡΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π½Π° Π΄ΠΈΡΠΊ, Π±ΡΠ΄ΡΡ ΠΆΠ΄Π°ΡΡ.
Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΡΠ°ΠΊΠΈΡ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ, ΠΏΡΠΎΡΡΠΎ Π½Π΅ Π°Π³ΡΠ΅Π³ΠΈΡΡΠΉΡΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ, Π½Π΅ Π±ΡΡΠ΅ΡΠΈΠ·ΠΈΡΡΠΉΡΠ΅ Π²ΠΎΠΎΠ±ΡΠ΅. Π Π΅ΡΠ»ΠΈ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ Π½Π° Π΄ΠΈΡΠΊ Π²ΡΠ΅-ΡΠ°ΠΊΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ (ΠΊ ΡΡΠ°ΡΡΡΡ, Stream API Π² Node.js ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠΎ ΡΠ·Π½Π°ΡΡ) β ΠΎΡΠ»ΠΎΠΆΠΈΡΠ΅ ΡΡΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅. ΠΠΎΡ ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅, ΡΡΠΎ ΠΎΠ½ΠΎ ΡΠ½ΠΎΠ²Π° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ β ΠΏΠΈΡΠΈΡΠ΅ Π² Π½Π΅Π³ΠΎ ΠΈΠ· Π½Π°ΠΊΠΎΠΏΠΈΠ²ΡΠ΅ΠΉΡΡ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ. Π ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΎ Π·Π°Π½ΡΡΠΎ β Π±Π΅ΡΠΈΡΠ΅ ΠΈΠ· ΠΏΡΠ»Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅, ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅, ΠΈ ΠΏΠΈΡΠΈΡΠ΅ Π² Π½Π΅Π³ΠΎ.
ΠΠΎ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΊ Π·Π°ΠΏΠΈΡΠΈ Π΄Π°Π½Π½ΡΡ Ρ Π½Π°Ρ Π±ΡΠ»ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 4K write ops, Π° ΡΠ°ΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΡΠΎΠΊΡΠ°ΡΠΈΠ»ΠΈ Π½Π°Π³ΡΡΠ·ΠΊΡ Π² 4 ΡΠ°Π·Π°. Π‘Π΅ΠΉΡΠ°Ρ Π²ΡΡΠΎΡΠ»ΠΈ Π΅ΡΠ΅ Π² 6 ΡΠ°Π· Π·Π° ΡΡΠ΅Ρ Π½ΠΎΠ²ΡΡ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΡΡ Π±Π°Π· β Π΄ΠΎ 100MB/s. Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΡ Ρ ΡΠ°Π½ΠΈΠΌ Π»ΠΎΠ³ΠΈ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 3 ΠΌΠ΅ΡΡΡΠ° Π² ΠΎΠ±ΡΠ΅ΠΌΠ΅ ΠΎΠΊΠΎΠ»ΠΎ 10-15TB, Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΡΠΆ Π·Π° ΡΡΠΈ-ΡΠΎ ΠΌΠ΅ΡΡΡΠ° Π»ΡΠ±ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π»ΡΠ±ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΡΠ΅ΡΠΈΡΡ.
ΠΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ
ΠΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ±ΡΠ°ΡΡ Π²ΡΠ΅ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ β Ρ ΠΎΡΠΎΡΠΎ, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΡΠΌΠ΅ΡΡΠ½ΠΎ, Π½ΠΎ ΠΌΠ°Π»ΠΎ β ΠΈΡ Π½Π°Π΄ΠΎ ΠΏΠΎΠ½ΡΡΡ. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠ»Π°Π½ΠΎΠ² Π·Π° ΡΡΡΠΊΠΈ.
ΠΠΎ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ β ΡΡΠΎ Π½Π΅ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎ, Π½Π°Π΄ΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΡΠ΄Π΅Π»Π°ΡΡ Β«ΠΏΠΎΠΌΠ΅Π½ΡΡΠ΅Β». Π, Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π½Π°Π΄ΠΎ ΡΠ΅ΡΠΈΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ Β«ΠΏΠΎΠΌΠ΅Π½ΡΡΠ΅Β» Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ.
ΠΡ Π²ΡΠ΄Π΅Π»ΠΈΠ»ΠΈ Π΄Π»Ρ ΡΠ΅Π±Ρ ΡΡΠΈ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΠ°:
- ΠΊΡΠΎ ΡΡΠΎΡ Π·Π°ΠΏΡΠΎΡ ΠΏΡΠΈΡΠ»Π°Π»
Π’ΠΎ Π΅ΡΡΡ ΠΈΠ· ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΠ½ Β«ΠΏΡΠΈΠ»Π΅ΡΠ΅Π»Β»: web-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, backend, ΠΏΠ»Π°ΡΠ΅ΠΆΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΠ»ΠΈ ΡΡΠΎ-ΡΠΎ Π΅ΡΠ΅. - Π³Π΄Π΅ ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ
ΠΠ° ΠΊΠ°ΠΊΠΎΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΏΠΎΠ΄ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠΎΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΠΈ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ ΠΎΠ΄ΠΈΠ½ Β«Π·Π°ΡΡΠΏΠΈΠ»Β» (ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Β«Π΄ΠΈΡΠΊ ΡΠ³Π½ΠΈΠ»Β», Β«ΠΏΠ°ΠΌΡΡΡ ΠΏΡΠΎΡΠ΅ΠΊΠ»Π°Β», Π΅ΡΠ΅ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ Π±Π΅Π΄Π°), ΡΠΎ Π½Π°Π΄ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π°Π΄ΡΠ΅ΡΠΎΠ²Π°ΡΡΡΡ Π΄ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°. - ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠΎΡΠ²Π»ΡΠ»Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌ ΠΏΠ»Π°Π½Π΅
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ Β«ΠΊΡΠΎΒ» ΠΏΡΠΈΡΠ»Π°Π» Π½Π°ΠΌ Π·Π°ΠΏΡΠΎΡ, ΠΌΡ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΡΠ°ΡΠ½ΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ β ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ΅ΡΡΠΈΠΈ: 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