Gatsby
ΠΠΠ§ΠΠ«Π
Gatsby
ΠΠΠ§ΠΠ«Π
- Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ
- 10 ΠΠΊΡ 2018
- Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
- 44,464
- ΠΠ°ΠΉΠΊΠΈ
- 204,459
ΠΠ²ΡΠΎΡ: Thinknetica
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅: ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² PostgreSQL (2023)

ΠΠ°ΡΡΠ΅Ρ-ΠΊΠ»Π°ΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ ΠΈΡΠΏΡΠΎΠ±ΠΎΠ²Π°Π»ΠΈ Π²ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ N+1 ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ, Π½ΠΎ Ρ ΠΎΡΡΡ Π΄ΠΎΡΡΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°. Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ Π΄Π°Π»ΡΡΠ΅? ΠΡΠΎΡΡΠΎΠ³ΠΎ ΠΎΡΠ²Π΅ΡΠ° Π½Π΅Ρ, ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΡΠΈΠΌ ΠΌΡ ΠΈ Π·Π°ΠΉΠΌΠ΅ΠΌΡΡ.
ΠΡΠΎΡ ΠΌΠ°ΡΡΠ΅Ρ ΠΊΠ»Π°ΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΡΠ΅ΠΌ, ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°ΡΡ Π½Π°ΡΠ³Π°Π΄ ΠΆΠΎΠ½Π³Π»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ, ΠΈ Π³ΠΎΡΠΎΠ² ΠΏΠΎΠ³ΡΡΠ·ΠΈΡΡΡΡ Π³Π»ΡΠ±ΠΆΠ΅ Π² ΡΠΎ ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½ PostgreSQL, ΡΡΠΎΠ±Ρ Π½Π°ΡΡΠΈΡΡΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ².
PostgreSQL Π²ΠΎΡΡ ΠΈΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°ΠΌΠ° ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, Π² 95% ΡΠ»ΡΡΠ°Π΅Π².
ΠΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΡΠΎ ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ 5%, ΠΈ ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠΎΡΡ PostgreSQL, Π½Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π½Π°ΡΡΠΈΡΡΡΡ Π΄ΡΠΌΠ°ΡΡ ΠΊΠ°ΠΊ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ .
ΠΠ° ΠΌΠ°ΡΡΠ΅Ρ-ΠΊΠ»Π°ΡΡΠ΅:
Π‘ΠΊΠ°ΡΠ°ΡΡ:
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅: ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² PostgreSQL (2023)

ΠΠ°ΡΡΠ΅Ρ-ΠΊΠ»Π°ΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ ΠΈΡΠΏΡΠΎΠ±ΠΎΠ²Π°Π»ΠΈ Π²ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ N+1 ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ, Π½ΠΎ Ρ ΠΎΡΡΡ Π΄ΠΎΡΡΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°. Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ Π΄Π°Π»ΡΡΠ΅? ΠΡΠΎΡΡΠΎΠ³ΠΎ ΠΎΡΠ²Π΅ΡΠ° Π½Π΅Ρ, ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΡΠΈΠΌ ΠΌΡ ΠΈ Π·Π°ΠΉΠΌΠ΅ΠΌΡΡ.
ΠΡΠΎΡ ΠΌΠ°ΡΡΠ΅Ρ ΠΊΠ»Π°ΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΡΠ΅ΠΌ, ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°ΡΡ Π½Π°ΡΠ³Π°Π΄ ΠΆΠΎΠ½Π³Π»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ, ΠΈ Π³ΠΎΡΠΎΠ² ΠΏΠΎΠ³ΡΡΠ·ΠΈΡΡΡΡ Π³Π»ΡΠ±ΠΆΠ΅ Π² ΡΠΎ ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½ PostgreSQL, ΡΡΠΎΠ±Ρ Π½Π°ΡΡΠΈΡΡΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ².
PostgreSQL Π²ΠΎΡΡ ΠΈΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°ΠΌΠ° ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, Π² 95% ΡΠ»ΡΡΠ°Π΅Π².
ΠΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΡΠΎ ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ 5%, ΠΈ ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠΎΡΡ PostgreSQL, Π½Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π½Π°ΡΡΠΈΡΡΡΡ Π΄ΡΠΌΠ°ΡΡ ΠΊΠ°ΠΊ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ .
ΠΠ° ΠΌΠ°ΡΡΠ΅Ρ-ΠΊΠ»Π°ΡΡΠ΅:
- ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ PostgreSQL
- ΠΠ°ΡΡΠΈΠΌΡΡ Π»ΡΠ±ΠΈΡΡ seq scan ΠΈ Π΄ΡΠΌΠ°ΡΡ ΠΊΠ°ΠΊ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ
- Π Π°Π·Π±Π΅ΡΠ΅ΠΌΡΡ ΠΊΠ°ΠΊ PostgreSQL ΡΠΈΡΠ°Π΅Ρ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅
- ΠΠ±ΡΡΠ΄ΠΈΠΌ views, materialized views, CTE ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΡΠΊΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΈ ΡΠ°ΠΊ Π·Π½Π°Π΅ΡΠ΅, Π½ΠΎ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½Ρ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ
- ΠΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠ΅Π»Π΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ, ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ΅ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ
Π‘ΠΊΡΡΡΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π΄Π»Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ!
Π‘ΠΊΠ°ΡΠ°ΡΡ:
ΠΠ»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠΊΡΡΡΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΠΎΠΉΡΠΈ ΠΈΠ»ΠΈ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ.