ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Π½Π° заявкитС Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π½Π° B2B услуга Π·Π° строитСли

Как Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠΌ заявкитС към Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ 10 ΠΏΡŠΡ‚ΠΈ, Π±Π΅Π· Π΄Π° ΠΌΠΈΠ³Ρ€ΠΈΡ€Π°ΠΌΠ΅ Π½Π° ΠΏΠΎ-ΠΌΠΎΡ‰Π΅Π½ ΡΡŠΡ€Π²ΡŠΡ€ ΠΈ Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈΠΌ работоспособността Π½Π° систСмата? Π©Π΅ Π²ΠΈ Ρ€Π°Π·ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ сС справихмС с ΠΏΠ°Π΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° производитСлността Π½Π° Π½Π°ΡˆΠ°Ρ‚Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Ρ…ΠΌΠ΅ SQL заявкитС, Π·Π° Π΄Π° обслуТвамС ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ сС ΠΌΠΎΠΆΠ΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ, Π±Π΅Π· Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°ΠΌΠ΅ Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° изчислитСлни рСсурси.

Бъздавам услуга Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° бизнСс процСси Π² строитСлството. Π‘ нас работят ΠΎΠΊΠΎΠ»ΠΎ 3000 ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. ΠŸΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 10 000 Π΄ΡƒΡˆΠΈ всСки Π΄Π΅Π½ работят с Π½Π°ΡˆΠ°Ρ‚Π° систСма ΠΏΠΎ 4-10 часа. Вя Ρ€Π΅ΡˆΠ°Π²Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ Π·Π° ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½Π΅, ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅, ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Π²Π°Π»ΠΈΠ΄ΠΈΡ€Π°Π½Π΅... ИзползвамС PostgreSQL 9.6. Π’ Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΠΈΠΌΠ°ΠΌΠ΅ ΠΎΠΊΠΎΠ»ΠΎ 300 Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ ΠΈ всСки Π΄Π΅Π½ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ Π΄ΠΎ 200 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° заявки (10 000 Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ). Π‘Ρ€Π΅Π΄Π½ΠΎ ΠΈΠΌΠ°ΠΌΠ΅ 3000-4000 заявки Π² сСкунда, Π² Π½Π°ΠΉ-Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈΡ‚Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΈ Π½Π°Π΄ 10 000 заявки Π² сСкунда. ΠŸΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ заявки са OLAP. Добавянията, ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈΡ‚Π΅ ΠΈ изтриванията са Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ, Ρ‚.Π΅. OLTP Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π΅ сравнитСлно ΠΌΠ°Π»ΠΊΠΎ. Всички Ρ‚Π΅Π·ΠΈ числа прСдоставих, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΎΡ†Π΅Π½ΠΈΡ‚Π΅ ΠΌΠ°Ρ‰Π°Π±Π° Π½Π° нашия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΊΠΎΠ»ΠΊΠΎ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Π½Π°ΡˆΠΈΡΡ‚ ΠΎΠΏΠΈΡ‚ Π·Π° вас.

ΠšΠ°Ρ€Ρ‚ΠΈΠ½Π° ΠΏΡŠΡ€Π²Π°. Π›ΠΈΡ‡Π½Π°

ΠšΠΎΠ³Π°Ρ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π°, Π½Π΅ си Π·Π°Π΄Π°Π²Π°Ρ…ΠΌΠ΅ особСни Π²ΡŠΠΏΡ€ΠΎΡΠΈ относно Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π²ΡŠΡ€Ρ…Ρƒ Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Ρ‰Π΅ ΠΏΡ€Π°Π²ΠΈΠΌ, Π°ΠΊΠΎ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ спрС Π΄Π° ΠΈΠ·Π΄ΡŠΡ€ΠΆΠ°. ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π‘Π” слСдвахмС ΠΎΠ±Ρ‰ΠΈΡ‚Π΅ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ ΠΈ сС стараСхмС Π΄Π° Π½Π΅ си стрСлямС Π² ΠΊΡ€Π°ΠΊΠ°, Π½ΠΎ Π½Π΅ ΠΎΡ‚ΠΈΠ΄ΠΎΡ…ΠΌΠ΅ ΠΏΠΎ-Π΄Π°Π»Π΅Ρ‡ ΠΎΡ‚ ΠΎΠ±Ρ‰ΠΈ ΡΡŠΠ²Π΅Ρ‚ΠΈ ΠΊΠ°Ρ‚ΠΎ "Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΏΠ°Ρ‚Π΅Ρ€Π½Π° Entity Attribute Values . ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Ρ…ΠΌΠ΅ Π² ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ с ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΡ‚Π΅ Π½Π° нормализация, избягвайки излишъка Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ Π½Π΅ сС Π³Ρ€ΠΈΠΆΠ΅Ρ…ΠΌΠ΅ Π·Π° ускоряванСто Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ заявки. Но Π²Π΅Π΄Π½Π°Π³Π° слСд ΠΊΠ°Ρ‚ΠΎ Π΄ΠΎΠΉΠ΄ΠΎΡ…Π° ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ, сС ΡΠ±Π»ΡŠΡΠΊΠ°Ρ…ΠΌΠ΅ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с производитСлността. ΠšΠ°ΠΊΡ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ, сС ΠΎΠΊΠ°Π·Π°Ρ…ΠΌΠ΅ напълно Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ Π·Π° Ρ‚ΠΎΠ²Π°. ΠŸΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ сС ΠΎΠΊΠ°Π·Π°Ρ…Π° лСсни. ОбикновСно всичко сС Ρ€Π΅ΡˆΠ°Π²Π°ΡˆΠ΅ Ρ‡Ρ€Π΅Π· добавянС Π½Π° Π½ΠΎΠ² индСкс. Но Π΄ΠΎΠΉΠ΄Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ прости Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ спряха Π΄Π° работят. Осъзнавайки, Ρ‡Π΅ нямамС Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ ΠΎΠΏΠΈΡ‚ ΠΈ става всС ΠΏΠΎ-Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈΡ‚Π΅ Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅, Π½Π°Π΅Ρ…ΠΌΠ΅ спСциалисти, ΠΊΠΎΠΈΡ‚ΠΎ Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ…Π° Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΠΌΠ΅ ΡΡŠΡ€Π²ΡŠΡ€Π° ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ, Π΄Π° Π²ΠΊΠ»ΡŽΡ‡ΠΈΠΌ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ°Ρ‚ къдС Π΄Π° Π³Π»Π΅Π΄Π°ΠΌΠ΅, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ статистика.

ΠšΠ°Ρ€Ρ‚ΠΈΠ½Π° Π²Ρ‚ΠΎΡ€Π°. БтатистичСска

И Ρ‚Π°ΠΊΠ°, ΠΈΠΌΠ°ΠΌΠ΅ ΠΎΠΊΠΎΠ»ΠΎ 10 000 Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ заявки, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π½Π° Π½Π°ΡˆΠ°Ρ‚Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π½Π° Π΄Π΅Π½. ΠžΡ‚ Ρ‚Π΅Π·ΠΈ 10 000, ΠΈΠΌΠ° монстри, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ 2-3 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΠΏΡŠΡ‚ΠΈ със срСдно Π²Ρ€Π΅ΠΌΠ΅ Π·Π° изпълнСниС ΠΎΡ‚ 0.1-0.3 мс ΠΈ ΠΈΠΌΠ° заявки със срСдно Π²Ρ€Π΅ΠΌΠ΅ Π·Π° изпълнСниС ΠΎΡ‚ 30 сСкунди, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ‚ 100 ΠΏΡŠΡ‚ΠΈ Π½Π° Π΄Π΅Π½.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° всички 10 000 заявки Π½Π΅ сС ΠΎΠΊΠ°Π·Π° възмоТно, Π·Π°Ρ‚ΠΎΠ²Π° Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π΄Π° сС фокусирамС Π²ΡŠΡ€Ρ…Ρƒ Ρ‚ΠΎΠ²Π°, къдС Π΄Π° насочим усилията си, Π·Π° Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠΌ производитСлността Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΠΏΠΎ правилния Π½Π°Ρ‡ΠΈΠ½. Π‘Π»Π΅Π΄ няколко ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π΄Π° раздСлямС заявкитС Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅.

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) FROM ( SELECT CASE WHEN rn  20 AND 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 AND rn  800  -- TAIL

Π•Ρ‚ΠΎ списък с Π½Π°ΠΉ-чСсто ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡ‚Π΅ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ…Π° Π΄Π° ускорим TOP заявкитС:

  • Π Π΅Π΄ΠΈΠ·Π°ΠΉΠ½ Π½Π° систСмата, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π½Π° извСстията с message broker вмСсто ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΈ заявки към Π‘Π”
  • ДобавянС ΠΈΠ»ΠΈ промяна Π½Π° индСкси
  • ΠŸΡ€Π΅ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° ORM заявки Π½Π° чист SQL
  • ΠŸΡ€Π΅ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π·Π° lazy Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ
  • ΠšΠ΅ΡˆΠΈΡ€Π°Π½Π΅ Ρ‡Ρ€Π΅Π· дСнормализация Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅. НапримСр, ΠΈΠΌΠ°ΠΌΠ΅ Π²Ρ€ΡŠΠ·ΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ Доставка -> Π‘Ρ‡Π΅Ρ‚ -> Заявка -> Заявка. ВоСст всяка доставка Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½Π° със заявка Ρ‡Ρ€Π΅Π· Π΄Ρ€ΡƒΠ³ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ. Π—Π° Π΄Π° Π½Π΅ ΡΠ²ΡŠΡ€Π·Π²Π°ΠΌΠ΅ всички Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ във всяка заявка, Π΄ΡƒΠ±Π»ΠΈΡ€Π°Ρ…ΠΌΠ΅ Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° към заявката Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Доставка.
  • ΠšΠ΅ΡˆΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° статични Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ със справочници ΠΈ рядко промСнящи сС Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°.

Понякога ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ изискваха Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π΅Π½ redesign, Π½ΠΎ прСдоставяха 5-10% освобоТдаванС Π½Π° систСмата ΠΈ бяха ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ΠΈ. Π‘ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ставаха всС ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ, Π° нСобходимостта ΠΎΡ‚ redesign - всС ΠΏΠΎ-сСриозна.

Π’ΠΎΠ³Π°Π²Π° ΠΎΠ±ΡŠΡ€Π½Π°Ρ…ΠΌΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° Π³Ρ€ΡƒΠΏΠ° запитвания - Π³Ρ€ΡƒΠΏΠ°Ρ‚Π° Π½Π° срСдняцитС. Π’ нСя имашС ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ запитвания ΠΈ изглСТдашС, Ρ‡Π΅ Π°Π½Π°Π»ΠΈΠ·ΡŠΡ‚ Π½Π° цялата Π³Ρ€ΡƒΠΏΠ° Ρ‰Π΅ ΠΎΡ‚Π½Π΅ΠΌΠ΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ запитвания сС ΠΎΠΊΠ°Π·Π°Ρ…Π° ΠΌΠ½ΠΎΠ³ΠΎ прости Π·Π° оптимизация, Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ сС повтаряха дСсСтки ΠΏΡŠΡ‚ΠΈ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΈ. Π•Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π½Π° някои Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ…ΠΌΠ΅ към дСсСтки ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ запитвания ΠΈ всяка Π³Ρ€ΡƒΠΏΠ° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ΠΈ запитвания освобоТдавашС Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ с 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 мс, Π²Π»ΠΈΠ·Π° Π² Ρ‚Ρ€Π΅Ρ‚Π°Ρ‚Π° стотинa Π½Π° Π½Π°ΠΉ-Ρ‚Π΅ΠΆΠΊΠΈΡ‚Π΅ запитвания ΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π‘Π” Π·Π°Π΅ΠΌΠ° стотни части ΠΎΡ‚ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π°. Но ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ΠΈ Ρ€Π΅Ρ†Π΅ΠΏΡ‚ към Π³Ρ€ΡƒΠΏΠ° Π΅Π΄Π½ΠΎΡ‚ΠΈΠΏΠ½ΠΈ запитвания Π½ΠΈ позволявашС Π΄Π° спСчСлим няколко ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π°. Π—Π° Π΄Π° Π½Π΅ Π³ΡƒΠ±ΠΈΠΌ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° Ρ€ΡŠΡ‡Π΅Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° всички стотици запитвания, написахмС няколко лСсни скрипта, ΠΊΠΎΠΈΡ‚ΠΎ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° рСгулярни ΠΈΠ·Ρ€Π°Π·ΠΈ Π½Π°ΠΌΠΈΡ€Π°Ρ…Π° Π΅Π΄Π½ΠΎΡ‚ΠΈΠΏΠ½ΠΈ запитвания. Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° автоматичния Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° Π³Ρ€ΡƒΠΏΠΈ запитвания успяхмС Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈΠΌ Π½Π°ΡˆΠ°Ρ‚Π° производитСлност ΠΎΡ‰Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅, с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ усилия.

Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° Π²Π΅Ρ‡Π΅ Ρ‚Ρ€ΠΈ Π³ΠΎΠ΄ΠΈΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ с Π΅Π΄Π½ΠΎ ΠΈ ΡΡŠΡ‰ΠΎ ΠΎΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅. Π‘Ρ€Π΅Π΄Π½ΠΎΠ΄Π½Π΅Π²Π½Π°Ρ‚Π° натоварСност Π΅ ΠΎΠΊΠΎΠ»ΠΎ 30%, Π° ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΏΠΈΠΊΠΎΠ²Π΅ достига Π΄ΠΎ 70%. Броят Π½Π° запитванията ΠΈ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ нарасна ΠΎΠΊΠΎΠ»ΠΎ дСсСт ΠΏΡŠΡ‚ΠΈ. И всичко Ρ‚ΠΎΠ²Π° Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° постоянния ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π° Ρ‚Π΅Π·ΠΈ Π³Ρ€ΡƒΠΏΠΈ запитвания TOP-MEDIUM. Π’Π΅Π΄Π½Π°Π³Π° Ρ‰ΠΎΠΌ сС появи Π½ΠΎΠ²ΠΎ Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ Π² Π³Ρ€ΡƒΠΏΠ°Ρ‚Π° TOP, Π½ΠΈΠ΅ Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ ΠΈ сС ΠΎΠΏΠΈΡ‚Π²Π°ΠΌΠ΅ Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠΌ скоростта ΠΌΡƒ. Π“Ρ€ΡƒΠΏΠ°Ρ‚Π° MEDIUM ΠΏΡ€Π΅Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ вСднъТ сСдмично с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° скриптовС Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° запитванията. Ако сС срСщнат Π½ΠΎΠ²ΠΈ запитвания, ΠΊΠΎΠΈΡ‚ΠΎ Π²Π΅Ρ‡Π΅ Π·Π½Π°Π΅ΠΌ ΠΊΠ°ΠΊ Π΄Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅, Π½ΠΈΠ΅ Π³ΠΈ промСнямС Π±ΡŠΡ€Π·ΠΎ. Понякога ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°ΠΌΠ΅ Π½ΠΎΠ²ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° оптимизация, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈ Π²Π΅Π΄Π½Π°Π³Π° Π½Π° няколко запитвания.

Π‘ΠΏΠΎΡ€Π΅Π΄ Π½Π°ΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈ тСкущият ΡΡŠΡ€Π²ΡŠΡ€ Ρ‰Π΅ ΠΈΠ·Π΄ΡŠΡ€ΠΆΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° броя Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ ΠΎΡ‰Π΅ 3-5 ΠΏΡŠΡ‚ΠΈ. Вярно Π΅, Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ ΠΎΡ‰Π΅ Π΅Π΄ΠΈΠ½ ΠΊΠΎΠ· Π² Ρ€ΡŠΠΊΠ°Π²Π° – всС ΠΎΡ‰Π΅ Π½Π΅ смС ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΠΈΠ»ΠΈ SELECT-запитванията Π½Π° ΠΎΠ³Π»Π΅Π΄Π°Π»ΠΎ, ΠΊΠ°ΠΊΡ‚ΠΎ сС ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°. Но Π½Π΅ Π³ΠΎ ΠΏΡ€Π°Π²ΠΈΠΌ ΡΡŠΠ·Π½Π°Ρ‚Π΅Π»Π½ΠΎ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ искамС ΠΏΡŠΡ€Π²ΠΎ Π΄Π° ΠΈΠ·Ρ‡Π΅Ρ€ΠΏΠΈΠΌ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π·Π° 'ΡƒΠΌΠ½Π°' оптимизация, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° Π²ΠΊΠ»ΡŽΡ‡ΠΈΠΌ 'Ρ‚Π΅ΠΆΠΊΠ°Ρ‚Π° артилСрия'.
ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΈΡΡ‚ ΠΏΠΎΠ³Π»Π΅Π΄ Π²ΡŠΡ€Ρ…Ρƒ ΡΠ²ΡŠΡ€ΡˆΠ΅Π½Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΌΠΎΠΆΠ΅ Π΄Π° насочи към ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½ΠΎ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅. Π”Π° Π·Π°ΠΊΡƒΠΏΠΈΠΌ ΠΏΠΎ-ΠΌΠΎΡ‰Π΅Π½ ΡΡŠΡ€Π²ΡŠΡ€, вмСсто Π΄Π° Π³ΡƒΠ±ΠΈΠΌ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° спСциалисти. Π‘ΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ струва Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° скъпо, особСно Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π»ΠΈΠΌΠΈΡ‚ΠΈΡ‚Π΅ Π½Π° Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½ΠΎΡ‚ΠΎ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅ Π½Π΅ са ΠΈΠ·Ρ‡Π΅Ρ€ΠΏΠ°Π½ΠΈ. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, само запитванията нараснаха дСсСт ΠΏΡŠΡ‚ΠΈ. ΠŸΡ€Π΅Π· послСднитС Π³ΠΎΠ΄ΠΈΠ½ΠΈ функционалността Π½Π° систСмата сС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ ΠΈ сСга Π²ΠΈΠ΄ΠΎΠ²Π΅Ρ‚Π΅ запитвания станаха ΠΏΠΎΠ²Π΅Ρ‡Π΅. Π’Π°Π·ΠΈ функционалност, която бСшС, Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ, сС изпълнява с ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ запитвания, ΠΈ Π½Π°ΠΉ-Π²Π΅Ρ‡Π΅ с ΠΏΠΎ-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΈ запитвания. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ, ΠΌΠΎΠΆΠ΅ΠΌ спокойно Π΄Π° ΡƒΠΌΠ½ΠΎΠΆΠΈΠΌ ΠΎΡ‰Π΅ ΠΏΠΎ 5, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ рСалния ΠΊΠΎΠ΅Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚ Π½Π° ускорСниС. Π’Π°ΠΊΠ° Ρ‡Π΅, ΠΏΠΎ Π½Π°ΠΉ-скромнитС изчислСния, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ, Ρ‡Π΅ ускорСниСто Π΅ Π½Π°Π΄ 50 ΠΏΡŠΡ‚ΠΈ. Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½ΠΎΡ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° 50 ΠΏΡŠΡ‚ΠΈ Π±ΠΈ Π±ΠΈΠ»ΠΎ ΠΏΠΎ-скъпо. ОсобСно ΠΊΠ°Ρ‚ΠΎ сС ΠΈΠΌΠ° ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ вСднъТ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ΅Π½Π°Ρ‚Π° оптимизация Ρ€Π°Π±ΠΎΡ‚ΠΈ постоянно, Π° смСтката Π·Π° наСтия ΡΡŠΡ€Π²ΡŠΡ€ ΠΈΠ΄Π²Π° всСки мСсСц.

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster