ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ запросов Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ B2B сСрвиса для строитСлСй

Как вырасти Π² 10 Ρ€Π°Π· ΠΏΠΎΠ΄ количСству запросов ΠΊ Π‘Π” Π½Π΅ пСрССзТая Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ сСрвСр ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ систСмы? Π― расскаТу, ΠΊΠ°ΠΊ ΠΌΡ‹ Π±ΠΎΡ€ΠΎΠ»ΠΈΡΡŒ с ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ нашСй Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ SQL запросы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Π½Π΅ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Ρ‚ΡŒ расходы Π½Π° Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ рСсурсы.

Π― дСлаю сСрвис для управлСния бизнСс процСссами Π² ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… компаниях. Π‘ Π½Π°ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ 3 тысяч ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ. Π‘ΠΎΠ»Π΅Π΅ 10 тысяч Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с нашСй систСмой ΠΏΠΎ 4-10 часов. Она Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π·Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ планирования, оповСщСния, прСдупрСТдСния, валидации… ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ PostgreSQL 9.6. Π’ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Ρƒ нас ΠΎΠΊΠΎΠ»ΠΎ 300 Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ сутки Π² Π½Π΅Π΅ поступаСт Π΄ΠΎ 200 ΠΌΠ»Π½ запросов (10 тысяч Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ…). Π’ срСднСм Ρƒ нас 3-4 тысяч запросов Π² сСкунду, Π² самыС Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Π±ΠΎΠ»Π΅Π΅ 10 тысяч запросов Π² сСкунду. Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ запросов β€” OLAP. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΉ, ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΉ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΉ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ мСньшС, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ OLTP Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нСбольшая. ВсС эти Ρ†ΠΈΡ„Ρ€Ρ‹ я ΠΏΡ€ΠΈΠ²Π΅Π», Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π± нашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ насколько наш ΠΎΠΏΡ‹Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π΅Π½ для вас.

ΠšΠ°Ρ€Ρ‚ΠΈΠ½Π° пСрвая. ЛиричСская

Когда ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, Ρ‚ΠΎ особо Π½Π΅ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Π»ΠΈΡΡŒ ΠΎ Ρ‚ΠΎΠΌ, какая Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ляТСт Π½Π° Π‘Π” ΠΈ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ Ссли сСрвСр пСрСстанСт Π²Ρ‹Ρ‚ΡΠ³ΠΈΠ²Π°Ρ‚ΡŒ. ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π‘Π” ΠΌΡ‹ слСдовали ΠΎΠ±Ρ‰ΠΈΠΌ рСкомСндациям ΠΈ ΡΡ‚Π°Ρ€Π°Π»ΠΈΡΡŒ Π½Π΅ ΡΡ‚Ρ€Π΅Π»ΡΡ‚ΡŒ сСбС Π² Π½ΠΎΠ³Ρƒ, Π½ΠΎ дальшС ΠΎΠ±Ρ‰ΠΈΡ… совСтов Π²Ρ€ΠΎΠ΄Π΅ β€œΠ½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ Entity Attribute Values ΠΌΡ‹ Π½Π΅ Π·Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈ. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ исходя ΠΈΠ· ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ избСгая избыточности Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π½Π΅ Π·Π°Π±ΠΎΡ‚ΠΈΠ»ΠΈΡΡŒ ΠΎΠ± ускорСния Ρ‚Π΅Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… запросов. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΡ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Как ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΡ‹ оказались Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ этому. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ оказались простыми. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ всС Ρ€Π΅ΡˆΠ°Π»ΠΎΡΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠ³ΠΎ индСкса. Но наступил ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ³Π΄Π° простыС Π·Π°ΠΏΠ»Π°Ρ‚ΠΊΠΈ пСрСстали Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Осознав, Ρ‡Ρ‚ΠΎ ΠΎΠΏΡ‹Ρ‚Π° Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ ΠΈ Π½Π°ΠΌ всС слоТнСС ΠΏΠΎΠ½ΡΡ‚ΡŒ Π² Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΌΡ‹ наняли спСциалистов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π»ΠΈ Π½Π°ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ сСрвСр, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³, ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ ΠΊΡƒΠ΄Π° ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ статистику.

ΠšΠ°Ρ€Ρ‚ΠΈΠ½Π° вторая. БтатистичСская

Π˜Ρ‚Π°ΠΊ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΎΠΊΠΎΠ»ΠΎ 10 тысяч Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… запросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π° нашСй Π‘Π” Π·Π° сутки. Из этих 10 тысяч Π΅ΡΡ‚ΡŒ монстры, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎ 2-3 ΠΌΠ»Π½ Ρ€Π°Π· со срСдним Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ выполнСния 0.1-0.3 мс ΠΈ Π΅ΡΡ‚ΡŒ запросы со срСдним Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ выполнСния 30 сСкунд, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ 100 Ρ€Π°Π· Π² сутки.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС 10 тысяч запросов Π½Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ»ΠΎΡΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ, поэтому ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с Ρ‚Π΅ΠΌ, ΠΊΡƒΠ΄Π° Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ усилия, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π‘Π” ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. ПослС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ ΠΌΡ‹ стали Π΄Π΅Π»ΠΈΡ‚ΡŒ запросы Π½Π° Ρ‚ΠΈΠΏΡ‹.

TOP запросы

Π­Ρ‚ΠΎ самыС тяТСлыС запросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ большС всСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (total time). Π­Ρ‚ΠΎ запросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»ΠΈΠ±ΠΎ ΠΎΡ‡Π΅Π½ΡŒ часто Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π»ΠΈΠ±ΠΎ запросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΠ»Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ (Π΄ΠΎΠ»Π³ΠΈΠ΅ ΠΈ частыС запросы Π±Ρ‹Π»ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π΅Ρ‰Π΅ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹Ρ… итСрациях Π±ΠΎΡ€ΡŒΠ±Ρ‹ Π·Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ). Π’ ΠΈΡ‚ΠΎΠ³Π΅ суммарно Π½Π° ΠΈΡ… исполнСниС сСрвСр Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ большС всСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ Π²Π°ΠΆΠ½ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‚ΠΎΠΏ запросы ΠΏΠΎ ΠΎΠ±Ρ‰Π΅ΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ исполнСния ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎ IO time. Бпособы ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΈΡ… запросов Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅.

ΠžΠ±Ρ‹Ρ‡Π½Π°Ρ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° всСх ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ- Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с TOP запросами. Π˜Ρ… Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ, оптимизация Π΄Π°ΠΆΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ запроса ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ 5-10% рСсурсов. Однако, ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ β€œΠ²Π·Ρ€ΠΎΡΠ»Π΅Π½ΠΈΡβ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° оптимизация TOP запросов становится всС Π±ΠΎΠ»Π΅Π΅ Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. ВсС простыС способы ΡƒΠΆΠ΅ ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹, Π΄Π° ΠΈ самый β€œΡ‚ΡΠΆΠ΅Π»Ρ‹ΠΉβ€ запрос ΠΎΡ‚Π½ΠΈΠΌΠ°Π΅Ρ‚ β€œΠ²ΡΠ΅Π³ΠΎβ€ 3-5% рСсурсов. Если TOP запросы Π² суммС Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ ΠΌΠ΅Π½Π΅Π΅ 30-40% Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‚ΠΎ скорСС всСго Π²Ρ‹ ΡƒΠΆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠ»ΠΈ усилия, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ быстро ΠΈ ΠΏΡ€ΠΈΡˆΠ»Π° ΠΏΠΎΡ€Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ запросов ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹.
ΠžΡΡ‚Π°Π΅Ρ‚ΡΡ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° вопрос сколько Π²Π΅Ρ€Ρ…Π½ΠΈΡ… запросов Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² эту Π³Ρ€ΡƒΠΏΠΏΡƒ. Π― ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π±Π΅Ρ€Ρƒ Π½Π΅ мСньшС 10, Π½ΠΎ Π½Π΅ большС 20. Π‘Ρ‚Π°Ρ€Π°ΡŽΡΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ врСмя ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ послСднСго Π² TOP Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΎΡ‚Π»ΠΈΡ‡Π°Π»ΠΎΡΡŒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π² 10 Ρ€Π°Π·. Π’ΠΎ Π΅ΡΡ‚ΡŒ Ссли врСмя исполнСния запросов Ρ€Π΅Π·ΠΊΠΎ ΠΏΠ°Π΄Π°Π΅Ρ‚ с 1 мСста Π΄ΠΎ 10, Ρ‚ΠΎ Π±Π΅Ρ€Ρƒ TOP-10, Ссли ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠ»Π°Π²Π½ΠΎΠ΅, Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π΄ΠΎ 15 ΠΈΠ»ΠΈ 20.
ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ запросов Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ B2B сСрвиса для строитСлСй

БСрСдняки (medium)

Π­Ρ‚ΠΎ всС запросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ΄ΡƒΡ‚ сразу Π·Π° TOP, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ послСдних 5-10%. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π² ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ этих запросов кроСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сильно ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ сСрвСра. Π­Ρ‚ΠΈ запросы ΠΌΠΎΠ³ΡƒΡ‚ β€œΠ²Π΅ΡΠΈΡ‚ΡŒβ€ Π΄ΠΎ 80%. Но Π΄Π°ΠΆΠ΅ Ссли ΠΈΡ… доля ΠΏΠ΅Ρ€Π΅Π²Π°Π»ΠΈΠ»Π° Π·Π° 50%, Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΏΠΎΡ€Π° Π½Π° Π½ΠΈΡ… Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

Π₯вост (tail)

Как Π±Ρ‹Π»ΠΎ сказано, эти запросы ΠΈΠ΄ΡƒΡ‚ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΈ Π½Π° Π½ΠΈΡ… ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ 5-10% Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠŸΡ€ΠΎ Π½ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π±Ρ‹Ρ‚ΡŒ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π²Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ автоматичСскиС срСдства Π°Π½Π°Π»ΠΈΠ·Π° запросов, Ρ‚ΠΎΠ³Π΄Π° ΠΈΡ… оптимизация Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ дСшСво ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ.

Как ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ?

Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ SQL запрос, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ΠΎΡ†Π΅Π½ΠΊΡƒ для PostgreSQL (ΡƒΠ²Π΅Ρ€Π΅Π½ Ρ‡Ρ‚ΠΎ для ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Π‘Π£Π‘Π” ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ запрос)

SQL запрос для ΠΎΡ†Π΅Π½ΠΊΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° TOP-MEDIUM-TAIL Π³Ρ€ΡƒΠΏΠΏ

SELECT sum(time_top) AS sum_top, sum(time_medium) AS sum_medium, sum(time_tail) AS sum_tail
FROM
(
  SELECT CASE WHEN rn <= 20              THEN tt_percent ELSE 0 END AS time_top,
         CASE WHEN rn > 20 AND rn <= 800 THEN tt_percent ELSE 0 END AS time_medium,
         CASE WHEN rn > 800              THEN tt_percent ELSE 0 END AS time_tail
  FROM (
    SELECT total_time / (SELECT sum(total_time) FROM pg_stat_statements) * 100 AS tt_percent, query,
    ROW_NUMBER () OVER (ORDER BY total_time DESC) AS rn
    FROM pg_stat_statements
    ORDER BY total_time DESC
  ) AS t
)
AS ts

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ запроса- Ρ‚Ρ€ΠΈ столбца, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТит ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ запросов ΠΈΠ· этой Π³Ρ€ΡƒΠΏΠΏΡ‹. Π’Π½ΡƒΡ‚Ρ€ΠΈ запроса Π΅ΡΡ‚ΡŒ Π΄Π²Π° числа (Π² ΠΌΠΎΠ΅ΠΌ случаС это 20 ΠΈ 800), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ отдСляСт запросы ΠΎΠ΄Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ.

Π’ΠΎΡ‚ Ρ‚Π°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ соотносятся Π΄ΠΎΠ»ΠΈ запросов Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚ ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ сСйчас.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ запросов Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ B2B сСрвиса для строитСлСй

Из Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ доля TOP запросов Ρ€Π΅Π·ΠΊΠΎ снизилась, Π·Π°Ρ‚ΠΎ выросли β€œΡΠ΅Ρ€Π΅Π΄Π½ΡΠΊΠΈβ€.
ΠŸΠΎΠ½Π°Ρ‡Π°Π»Ρƒ Π² TOP запросы ΠΏΠΎΠΏΠ°Π΄Π°Π»ΠΈ ΠΎΡ‚ΠΊΡ€ΠΎΠ²Π΅Π½Π½Ρ‹Π΅ ляпы. Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ дСтскиС Π±ΠΎΠ»Π΅Π·Π½ΠΈ исчСзли, доля TOP запросов ΡΠΎΠΊΡ€Π°Ρ‰Π°Π»Π°ΡΡŒ, ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ΡŒ всС большС усилий, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ тяТСлыС запросы.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ тСкст запросов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ‚Π°ΠΊΠΎΠΉ запрос

SELECT * FROM (
  SELECT ROW_NUMBER () OVER (ORDER BY total_time DESC) AS rn, total_time / (SELECT sum(total_time) FROM pg_stat_statements) * 100 AS tt_percent, query
  FROM pg_stat_statements
  ORDER BY total_time DESC
) AS T
WHERE
rn <= 20 -- TOP
-- rn > 20 AND rn <= 800 -- MEDIUM
-- rn > 800  -- TAIL

Π’ΠΎΡ‚ список самых часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π»ΠΈ Π½Π°ΠΌ ΡƒΡΠΊΠΎΡ€ΡΡ‚ΡŒ TOP запросы:

  • Redesign систСмы, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π»ΠΎΠ³ΠΈΠΊΠΈ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ Π½Π° message broker вмСсто пСриодичСских запросов ΠΊ Π‘Π”
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ индСксов
  • ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Π½ΠΈΠ΅ ORM запросов Π½Π° чистый SQL
  • ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΠΊΠΈ lazy ΠΏΠΎΠ΄Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…
  • ΠšΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· Π΄Π΅Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…. НапримСр Ρƒ нас Π΅ΡΡ‚ΡŒ связь Ρ‚Π°Π±Π»ΠΈΡ† Доставка -> Π‘Ρ‡Π΅Ρ‚ -> Запрос -> Заявка. Π’ΠΎ Π΅ΡΡ‚ΡŒ каТдая доставка связана с заявкой Ρ‡Π΅Ρ€Π΅Π· Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запросС всС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ссылку Π½Π° заявку Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Доставка.
  • ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ статичСских Ρ‚Π°Π±Π»ΠΈΡ† со справочниками ΠΈ Ρ€Π΅Π΄ΠΊΠΎ ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ Ρ‚Π°Π±Π»ΠΈΡ† Π² памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Иногда измСнСния тянули Π½Π° Π²Π½ΡƒΡˆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π΄ΠΈΠ·Π°ΠΉΠ½, Π½ΠΎ Π΄Π°Π²Π°Π»ΠΈ 5-10% Ρ€Π°Π·Π³Ρ€ΡƒΠ·ΠΊΠΈ систСмы ΠΈ Π±Ρ‹Π»ΠΈ ΠΎΠΏΡ€Π°Π²Π΄Π°Π½Ρ‹. Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π²Ρ‹Ρ…Π»ΠΎΠΏ становился всС мСньшС, Π° Ρ€Π΅Π΄ΠΈΠ·Π°ΠΉΠ½ трСбовался всС Π±ΠΎΠ»Π΅Π΅ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΉ.

Π’ΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ»ΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²Ρ‚ΠΎΡ€ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ запросов- Π³Ρ€ΡƒΠΏΠΏΡƒ сСрСдняков. Π’ Π½Π΅ΠΉ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ большС запросов ΠΈ казалось, Ρ‡Ρ‚ΠΎ Π½Π° Π°Π½Π°Π»ΠΈΠ· всСй Π³Ρ€ΡƒΠΏΠΏΡ‹ ΡƒΠΉΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Однако Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ запросов оказались ΠΎΡ‡Π΅Π½ΡŒ просты для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΠ»ΠΈΡΡŒ дСсятки Ρ€Π°Π· Π² Ρ€Π°Π·Π½Π»ΠΈΡ‡Π½Ρ‹Ρ… вариациях. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ примСняли ΠΊ дСсяткам ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… запросов ΠΈ каТдая Π³Ρ€ΡƒΠΏΠΏΠ° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… запросов Ρ€Π°Π·Π³Ρ€ΡƒΠΆΠ°Π»Π° Π‘Π” Π½Π° 3-5%.

  • ВмСсто ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ наличия записСй с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ COUNT ΠΈ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ сканирования Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ стали ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ EXISTS
  • Избавились ΠΎΡ‚ DISTINCT (Π½Π΅Ρ‚ ΠΎΠ±Ρ‰Π΅Π³ΠΎ Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π°, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΡ‚ Π½Π΅Π³ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ускоряя запрос Π² 10-100 Ρ€Π°Π·).

    НапримСр, вмСсто запроса для Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ всСх Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΏΠΎ большой Ρ‚Π°Π±Π»ΠΈΡ†Π΅ доставок (DELIVERY)

    SELECT DISTINCT P.ID, P.FIRST_NAME, P.LAST_NAME
    FROM DELIVERY D JOIN PERSON P ON D.DRIVER_ID = P.ID
    

    сдСлали запрос ΠΏΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нСбольшой Ρ‚Π°Π±Π»ΠΈΡ†Π΅ PERSON

    SELECT P.ID, P.FIRST_NAME, P.LAST_NAME
    FROM PERSON
    WHERE EXISTS(SELECT D.ID FROM DELIVERY WHERE D.DRIVER_ID = P.ID)
    

    Казалось Π±Ρ‹, ΠΌΡ‹ использовали ΠΊΠΎΡ€Ρ€Π΅Π»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ подзапрос, Π½ΠΎ ΠΎΠ½ Π΄Π°Π΅Ρ‚ ускорСниС Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π² 10 Ρ€Π°Π·.

  • Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΡ‚ΠΊΠ°Π·Π°Π»ΠΈΡΡŒ ΠΎΡ‚ COUNT ΠΈ
    Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π½Π° расчСт ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ значСния
  • вмСсто
    UPPER(s) LIKE JOHN%’ 
    

    ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ

    s ILIKE β€œJohn%”
    

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ запрос ΡƒΠ΄Π°Π²Π°Π»ΠΎΡΡŒ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ ΠΏΠΎΡ€ΠΎΠΉ Π² 3-1000 Ρ€Π°Π·. НСсмотря Π½Π° Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, ΠΏΠΎΠ½Π°Ρ‡Π°Π»Ρƒ Π½Π°ΠΌ казалось, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ смысла Π² ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ запроса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСтся 10 мс, Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² 3-ю ΡΠΎΡ‚Π½ΡŽ самых тяТСлых запросов ΠΈ Π² ΠΎΠ±Ρ‰Π΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° Π‘Π” Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ сотыС Π΄ΠΎΠ»ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π°. Но примСняя ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Ρ†Π΅ΠΏΡ‚ ΠΊ Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… запросов ΠΌΡ‹ ΠΎΡ‚Ρ‹Π³Ρ€Ρ‹Π²Π°Π»ΠΈ ΠΏΠΎ нСсколько ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠ². Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Π½Π° Ρ€ΡƒΡ‡Π½ΠΎΠΉ просмотр всСх сотСн запросов ΠΌΡ‹ написали нСсколько простых скриптов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Π΅ запросы. Π’ ΠΈΡ‚ΠΎΠ³Π΅ автоматичСский поиск Π³Ρ€ΡƒΠΏΠΏ запросов ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Π½Π°ΠΌ Π΅Ρ‰Π΅ большС ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π·Π°Ρ‚Ρ€Π°Ρ‚ΠΈΠ² скромныС усилия.

Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΡ‹ ΡƒΠΆΠ΅ Ρ‚Ρ€ΠΈ Π³ΠΎΠ΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΆΠ΅Π»Π΅Π·Π΅. БрСднСсуточная Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΎΠΊΠΎΠ»ΠΎ 30%, Π² ΠΏΠΈΠΊΠ°Ρ… Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ 70%. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ запросов ΠΊΠ°ΠΊ ΠΈ количСство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ выросло ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² 10 Ρ€Π°Π·. И всС это благодаря постоянному ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Ρƒ этих самых Π³Ρ€ΡƒΠΏΠΏ запросов TOP-MEDIUM. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ запрос появляСтся Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ TOP, ΠΌΡ‹ Π΅Π³ΠΎ Ρ‚ΡƒΡ‚ ΠΆΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΈ пытаСмся ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ. Π“Ρ€ΡƒΠΏΠΏΡƒ MEDIUM ΠΌΡ‹ Ρ€Π°Π· Π² нСдСлю просматриваСм с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скриптов Π°Π½Π°Π»ΠΈΠ·Π° запросов. Если ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ запросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅ΠΌ ΠΊΠ°ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‚ΠΎ ΠΌΡ‹ ΠΈΡ… быстро мСняСм. Иногда Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π½ΠΎΠ²Ρ‹Π΅ способы ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ сразу ΠΊ нСскольким запросам.

По нашим ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Π°ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ сСрвСр Π²Ρ‹Π΄Π΅Ρ€ΠΆΠΈΡ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ количСства ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π΅Ρ‰Π΅ Π² 3-5 Ρ€Π°Π·. ΠŸΡ€Π°Π²Π΄Π° Ρƒ нас Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ·Ρ‹Ρ€ΡŒ Π² Ρ€ΡƒΠΊΠ°Π²Π΅- ΠΌΡ‹ Π΄ΠΎ сих ΠΏΠΎΡ€ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π²Π΅Π»ΠΈ SELECT- запросы Π½Π° Π·Π΅Ρ€ΠΊΠ°Π»ΠΎ, ΠΊΠ°ΠΊ рСкомСндуСтся Π΄Π΅Π»Π°Ρ‚ΡŒ. Но ΠΌΡ‹ этого Π½Π΅ Π΄Π΅Π»Π°Π΅ΠΌ осознанно, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ…ΠΎΡ‚ΠΈΠΌ сначала Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΈΡΡ‡Π΅Ρ€ΠΏΠ°Ρ‚ΡŒ возмоТности Β«ΡƒΠΌΠ½ΠΎΠΉΒ» ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Β«Ρ‚ΡΠΆΠ΅Π»ΡƒΡŽ Π°Ρ€Ρ‚ΠΈΠ»Π»Π΅Ρ€ΠΈΡŽΒ».
ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ взгляд Π½Π° ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ΠšΡƒΠΏΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ сСрвСр, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя спСциалистов. Π‘Π΅Ρ€Π²Π΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚ΠΎΠΈΡ‚ΡŒ Π½Π΅ Ρ‚Π°ΠΊ Π΄ΠΎΡ€ΠΎΠ³ΠΎ, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Ρ‡Ρ‚ΠΎ Π»ΠΈΠΌΠΈΡ‚Ρ‹ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Ρƒ нас Π΅Ρ‰Π΅ Π½Π΅ исчСрпаны. Однако Π² 10 Ρ€Π°Π· выросло лишь количСство запросов. Π—Π° нСсколько Π»Π΅Ρ‚, увСличился Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» систСмы ΠΈ сСйчас разновидностСй запросов стало большС. Π’ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π», Π·Π° счСт ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ выполняСтся мСньшим количСством запросов, ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ эффСктивных запросов. Π—Π½Π°Ρ‡ΠΈΡ‚ ΠΌΠΎΠΆΠ½ΠΎ смСло ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ Π½Π° 5, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ коэффициСнт ускорСния. Π˜Ρ‚Π°ΠΊ ΠΏΠΎ самым скромным подсчСтам ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ускорСниС составило 50 ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·. Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ сСрвСр Π² 50 Ρ€Π°Π· обошлось Π±Ρ‹ Π΄ΠΎΡ€ΠΎΠΆΠ΅. ОсобСнно учитывая, Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ‹ провСдСнная оптимизация Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ всС врСмя, Π° счСт Π·Π° Π°Ρ€Π΅Π½Π΄ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ сСрвСр ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ мСсяц.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com