Когда Π²Ρ‹ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ с Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘, особСнно ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ слоТных ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² ΠΏΠΈΠΊΠΎΠ²Ρ‹Π΅ часы, ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΠΎΠ΄ΠΎΠ·Ρ€Π΅Π½ΠΈΠ΅ ΠΏΠ°Π΄Π°Π΅Ρ‚ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ. Π§Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅ Π½Π° самом Π΄Π΅Π»Π΅ ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ отсутствиС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ индСкса ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ ΠΈΠ· 1000 записСй Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΡƒΡŽ часы? ИндСкс Π² контСкстС систСм управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (Π‘Π£Π‘Π”) β€” это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ структура, которая ускоряСт поиск Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ оглавлСнию Π² толстой ΠΊΠ½ΠΈΠ³Π΅.

Π’ экосистСмС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ этот ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° стыкС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π‘Π£Π‘Π” (PostgreSQL, MS SQL ΠΈΠ»ΠΈ Oracle). Если Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… прСдставляСт собой ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ склад, Ρ‚ΠΎ индСксы β€” это Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΊΠ»Π°Π΄ΠΎΠ²Ρ‰ΠΈΠΊΡƒ (сСрвСру 1Π‘) ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΊΠΎΡ€ΠΎΠ±ΠΊΡƒ, Π½Π΅ пСрСбирая всС стСллаТи подряд. ПониманиС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ этого ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° критичСски Π²Π°ΠΆΠ½ΠΎ для администраторов ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², стрСмящихся ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

ЀизичСская ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π° индСксов Π² 1Π‘

Π‘ тСхничСской Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния, индСкс β€” это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…Ρ€Π°Π½ΠΈΡ‚ отсортированныС значСния ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ полям Ρ‚Π°Π±Π»ΠΈΡ†. Π’ 1Π‘ эти Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ автоматичСски Π½Π° основС ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Когда Π²Ρ‹ рСгистрируСтС ΠΏΠΎΠ»Π΅ для индСксации Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° отправляСт ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π‘Π£Π‘Π” Π½Π° созданиС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ структуры B-Π΄Π΅Ρ€Π΅Π²Π° (ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΉ, Π² зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Π±Π°Π·Ρ‹).

Π˜Π½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡ позволяСт сСрвСру Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ поиск Π½Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ сканированиСм всСй Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Full Table Scan), Π° ΠΏΡƒΡ‚Π΅ΠΌ быстрого спуска ΠΏΠΎ Π΄Π΅Ρ€Π΅Π²Ρƒ индСкса. Π­Ρ‚ΠΎ ΠΊΠ°Ρ€Π΄ΠΈΠ½Π°Π»ΡŒΠ½ΠΎ сниТаСт Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° Π΄ΠΈΡΠΊΠΎΠ²ΡƒΡŽ подсистСму ΠΈ процСссор. Однако Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ индСксы Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ мСсто Π½Π° дискС ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ рСсурсов Π½Π° своС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ записи ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Π’ конфигурациях 1Π‘ индСксы ΠΏΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ измСрСниям рСгистров, Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°ΠΌ справочников ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². НапримСр, поиск Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½Ρ‹ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΏΠΎΠ»Π΅ НомСр проиндСксировано. Π‘Π΅Π· этого систСмС придСтся ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ строку Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ совпадСниС.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ количСства индСксов ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ эффСкт. ΠŸΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ записи (ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, сохранСниС элСмСнта) сСрвСр Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ всС связанныС индСксы, Ρ‡Ρ‚ΠΎ замСдляСт Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ.

πŸ’‘

ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ количСство индСксов для ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ 5-7 ΡˆΡ‚ΡƒΠΊ, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ это Π½Π΅ спСцифичСский аналитичСский сцСнарий.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ индСксами Ρ‡Π΅Ρ€Π΅Π· ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ инструмСнтом настройки для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° являСтся Ρ€Π΅ΠΆΠΈΠΌ ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€. ИмСнно здСсь закладываСтся Π»ΠΎΠ³ΠΈΠΊΠ° Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΊΠ°Ρ‚ΡŒΡΡ быстро. Π’ свойствах ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… (справочников, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², рСгистров) сущСствуСт Π²ΠΊΠ»Π°Π΄ΠΊΠ° "Π˜Π½Π΄Π΅ΠΊΡΡ‹". Π—Π΄Π΅ΡΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ полям ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ структуру ускорСнного доступа.

ΠŸΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ индСкса Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ сортировки: ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ составной индСкс, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ нСсколько ΠΏΠΎΠ»Π΅ΠΉ. ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΏΠΎΠ»Π΅ΠΉ Π² составном индСксС ΠΈΠΌΠ΅Π΅Ρ‚ критичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: запрос Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ индСкс эффСктивно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π² условии Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° участвуСт ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ этого индСкса.

ПослС внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ SQL-скрипты для создания ΠΈΠ»ΠΈ измСнСния физичСских ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Π‘Π£Π‘Π”. ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ трСбуСтся пСрСстроСниС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… структур.

  • πŸ“‚ ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² Π΄Π΅Ρ€Π΅Π²Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² свойства.
  • πŸ” НайдитС Π²ΠΊΠ»Π°Π΄ΠΊΡƒ "Π˜Π½Π΄Π΅ΠΊΡΡ‹" ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ строку.
  • βš™οΈ Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ поля для индСксации ΠΈ Π·Π°Π΄Π°ΠΉΡ‚Π΅ порядок сортировки.
  • πŸ’Ύ ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· мСню "АдминистрированиС".

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° настройки индСкса

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

ВлияниС Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ запросов

Главная Ρ†Π΅Π»ΡŒ внСдрСния индСксов β€” ускорСниС выполнСния запросов ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Однако Π½Π΅ всС запросы Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°ΡŽΡ‚ ΠΎΡ‚ ΠΈΡ… наличия. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ запросов Π‘Π£Π‘Π” ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΡˆΠ°Π΅Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈ индСкс ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ сканированиС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° статистикС распрСдСлСния Π΄Π°Π½Π½Ρ‹Ρ…. Если Π²Ρ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ 90% строк ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, использованиС индСкса Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ΅Π½Π΅Π΅ эффСктивным, Ρ‡Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ…ΠΎΠ΄.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ стоит ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ запросам с условиями ВЫБРАВЬ ... Π“Π”Π•. Если ΠΏΠΎΠ»Π΅, ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π² условии Π“Π”Π•, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ индСкса, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΡƒΠΏΠ°Π΄Π΅Ρ‚ ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ с ростом объСма Π΄Π°Π½Π½Ρ‹Ρ…. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ ΠΊ полю Π² условии (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π›Π•Π’Π«Π™Π‘Π˜ΠœΠ’ΠžΠ›(ПолС, 3)), часто приводят ΠΊ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ индСкса.

Для Π°Π½Π°Π»ΠΈΠ·Π° эффСктивности ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠ»Π°Π½Ρ‹ выполнСния запросов. Они ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ сСрвСр для получСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. НаличиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ "Index Seek" ΠΈΠ»ΠΈ "Index Scan" вмСсто "Table Scan" ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° ускорСния.

Π’ΠΈΠΏ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ОписаниС ВлияниС Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ
Index Seek ΠŸΡ€ΡΠΌΠΎΠΉ поиск ΠΏΠΎ индСксу Высокая (ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ)
Index Scan ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ ΠΏΠΎ индСксу БрСдняя (зависит ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°)
Table Scan ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Низкая (ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…)
Key Lookup Дозапрос Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· основной Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ БрСдняя (Π΄ΠΎΠΏ. Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°)
πŸ’‘

ИндСкс Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эффСктивно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° условиС запроса позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ структуру "с Π½Π°Ρ‡Π°Π»Π°", Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… вычислСний Π½Π°Π΄ ΠΏΠΎΠ»Π΅ΠΌ.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрном Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ индСксации ΠΊΠ°Ρ€Π΄ΠΈΠ½Π°Π»ΡŒΠ½ΠΎ отличаСтся Π² зависимости ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ 1Π‘. Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ (File) Ρ€ΠΎΠ»ΡŒ Π‘Π£Π‘Π” выполняСт встроСнный Π΄Π²ΠΈΠΆΠΎΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π—Π΄Π΅ΡΡŒ индСксы ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ срСдствами 1Π‘ ΠΈ хранятся Π² Ρ„Π°ΠΉΠ»Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (.1CD). ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ прямого доступа ΠΊ ΠΏΠ»Π°Π½Π°ΠΌ выполнСния ΠΈΠ»ΠΈ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ настройкС.

Π’ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрном Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ (Client-Server) Π·Π° ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ внСшняя Π‘Π£Π‘Π”: MS SQL Server, PostgreSQL ΠΈΠ»ΠΈ Oracle. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ администратору Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΡ‰Π½Ρ‹Π΅ инструмСнты для Ρ‚ΠΎΠ½ΠΊΠΎΠΉ настройки, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ статистика, фрагмСнтация ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ страниц. Однако это Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ состояния этих структур.

Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ отсутствиС индСкса ощущаСтся острСС ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΠΎ локальной сСти, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ вСсь объСм Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΊΠ°Π½Π°Π»Ρƒ связи. Π’ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрном Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ происходит Π½Π° сторонС сСрвСра Π‘Π”, ΠΈ ΠΏΠΎ сСти ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ индСксов Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹ΠΌ для экономии Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ 1Π‘ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сторонниС инструмСнты Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΠ»Π°Π½ΠΎΠ² запросов. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ структуры ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅.

πŸ“Š Какой Ρ€Π΅ΠΆΠΈΠΌ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ всСго?
Π€Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ (ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ/локальная ΡΠ΅Ρ‚ΡŒ)
ΠšΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрный (MS SQL)
ΠšΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрный (PostgreSQL)
ΠšΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрный (Oracle)
НС знаю / Π”Ρ€ΡƒΠ³ΠΎΠ΅

Диагностика ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с индСксами

Как ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² вашСй Π±Π°Π·Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с индСксациСй? ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π·Π²ΠΎΠ½ΠΎΡ‡ΠΊΠΎΠΌ становятся ΠΆΠ°Π»ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° "Ρ‚ΠΎΡ€ΠΌΠΎΠ·Π°" ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ ΠΈΠ»ΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ². Для Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΉ диагностики Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнты ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, встроСнныС Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ 1Π‘ ΠΈΠ»ΠΈ прСдоставляСмыС администратором Π‘Π£Π‘Π”.

Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ прСдприятия ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ тСхнологичСский ΠΆΡƒΡ€Π½Π°Π» (Π’Π–), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ фиксируСт Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Анализируя Π»ΠΎΠ³ΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ запросы с Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ выполнСния, ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰ΠΈΠΌ допустимыС Π½ΠΎΡ€ΠΌΡ‹. Часто Ρ‚Π°ΠΊΠΈΠ΅ запросы связаны с отсутствиСм индСкса ΠΏΠΎ полю, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌΡƒ для соСдинСния Ρ‚Π°Π±Π»ΠΈΡ† (Π‘ΠžΠ•Π”Π˜ΠΠ•ΠΠ˜Π•) ΠΈΠ»ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ.

Для администраторов SQL-сСрвСров ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ спСциализированныС скрипты ΠΈ прСдставлСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, sys.dm_db_missing_index_details Π² MS SQL), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прямо ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ индСксы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ систСмы. Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ этих Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ Π²Π΅Π΄Π΅Ρ‚ ΠΊ Π΄Π΅Π³Ρ€Π°Π΄Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ роста Π±Π°Π·Ρ‹.

SELECT * FROM sys.dm_db_missing_index_details

WHERE database_id = DB_ID('YourBaseName')

ORDER BY avg_total_user_cost avg_user_impact (user_seeks + user_scans) DESC;

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ фрагмСнтация индСкса?

ЀрагмСнтация β€” это состояниС, ΠΊΠΎΠ³Π΄Π° логичСский порядок страниц индСкса Π½Π΅ совпадаСт с физичСским располоТСниСм Π½Π° дискС. Высокая фрагмСнтация (Π±ΠΎΠ»Π΅Π΅ 30%) ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ количСства ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ замСдлСнию чтСния. ВрСбуСтся ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° пСрСстроСния (REBUILD) ΠΈΠ»ΠΈ Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ (REORGANIZE).

БтратСгия ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ

Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ индСксациСй β€” это баланс ΠΌΠ΅ΠΆΠ΄Ρƒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ чтСния ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ записи. НС стоит ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС поля подряд. БтратСгия Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒΡΡ Π½Π° Π°Π½Π°Π»ΠΈΠ·Π΅ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… сцСнариСв использования: ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ‡Π°Ρ‰Π΅ всСго, ΠΊΠ°ΠΊΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ проводятся Π² массовом порядкС, ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ полям осущСствляСтся основной поиск.

РСгулярный Π°ΡƒΠ΄ΠΈΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ позволяСт ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ индСксы. Если ΠΏΠΎΠ»Π΅ проиндСксировано, Π½ΠΎ статистика ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ количСство ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ Π½Π΅ΠΌΡƒ Π·Π° Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄, Ρ‚Π°ΠΊΠΎΠΉ индСкс лишь consumes рСсурсы ΠΏΡ€ΠΈ записи. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… систСмах Ρ‚Π°ΠΊΠΎΠΉ "балласт" ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π΄ΠΎ 20% ΠΎΡ‚ ΠΎΠ±Ρ‰Π΅Π³ΠΎ объСма индСксов.

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½ΠΎΠ²Ρ‹Ρ… подсистСм всСгда Π·Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°ΠΉΡ‚Π΅ индСксы для ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ Π½Π° этапС проСктирования. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ индСкса Π½Π° ΠΆΠΈΠ²ΠΎΠΉ Π±Π°Π·Π΅ с ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ записСй β€” это дорогая опСрация, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° врСмя пСрСстроСния Ρ‚Π°Π±Π»ΠΈΡ†.

  • πŸš€ Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΡƒΠΉΡ‚Π΅ поля, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² условиях ΠΎΡ‚Π±ΠΎΡ€Π° (Π“Π”Π•).
  • πŸ”— ДобавляйтС индСксы Π½Π° поля, ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² соСдинСниях Ρ‚Π°Π±Π»ΠΈΡ† (Π‘ΠžΠ•Π”Π˜ΠΠ•ΠΠ˜Π•).
  • πŸ“‰ Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ индСксации ΠΏΠΎΠ»Π΅ΠΉ с Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΠ΅Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "Пол" ΠΈΠ»ΠΈ "Бтатус", Ссли Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² всСго 2-3).
  • πŸ—‘οΈ РСгулярно удаляйтС индСксы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… запросах.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π‘Π£Π‘Π” ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΈ Π²Π΅Π½Π΄ΠΎΡ€Π°ΠΌΠΈ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. ВсСгда свСряйтС Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊ вашСй вСрсии 1Π‘ ΠΈ Ρ‚ΠΈΠΏΡƒ Π‘Π£Π‘Π” ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

πŸ’‘

Π›ΡƒΡ‡ΡˆΠ°Ρ оптимизация β€” это ΠΏΡ€ΠΎΡ„ΠΈΠ»Π°ΠΊΡ‚ΠΈΠΊΠ°. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ спроСктированная структура ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… экономит сотни часов администрирования Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

МоТно Π»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ индСкс нСпосрСдствСнно Ρ‡Π΅Ρ€Π΅Π· запрос SQL, минуя ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€?

ВСхничСски это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрном Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅, Π½ΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ Π½Π΅ рСкомСндуСтся. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ измСнСния ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ "Ρ‡ΡƒΠΆΠΈΠ΅" индСксы, считая ΠΈΡ… Π½Π΅ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌ. ВсС измСнСния структуры Π‘Π” Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ обновлСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 1Π‘.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ послС добавлСния индСкса Π±Π°Π·Π° стала Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅?

Π­Ρ‚ΠΎ классичСская ситуация ΠΏΡ€ΠΈ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΠΉ индСксации. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π½ΠΎΠ²Ρ‹ΠΉ индСкс замСдляСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ записи (Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π‘Π£Π‘Π” Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ всСх индСксных структур. Если Π² вашСй систСмС ΠΌΠ½ΠΎΠ³ΠΎ записСй ΠΈ ΠΌΠ°Π»ΠΎ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ, лишниС индСксы наврСдят.

ВлияСт Π»ΠΈ индСксация Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…?

Π”Π°, индСксы Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ дисковоС пространство. Π’ зависимости ΠΎΡ‚ количСства ΠΈ Ρ‚ΠΈΠΏΠ° индСксов, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° 20-50% ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ объСма самих Π΄Π°Π½Π½Ρ‹Ρ…. Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ это Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ влияСт Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° .1CD.

Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π»ΠΈ ΠΌΠΎΠΉ индСкс Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅?

Для этого Π½ΡƒΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ сбор Π΄Π°Π½Π½Ρ‹Ρ… тСхнологичСского ΠΆΡƒΡ€Π½Π°Π»Π° (Π’Π–) с Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠΌ ΠΏΠΎ событиям DBMSSQL (ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ для вашСй Π‘Π£Π‘Π”). Π’ Π»ΠΎΠ³Π°Ρ… Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½ ΠΏΠ»Π°Π½ выполнСния запроса, Π³Π΄Π΅ Π²ΠΈΠ΄Π½ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ индСксы Π±Ρ‹Π»ΠΈ задСйствованы (Index Seek/Scan), Π° ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹.

НуТно Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ индСксы Π² 1Π‘?

Π’ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрном Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ (MS SQL, PostgreSQL) рСгулярноС обслуТиваниС индСксов (Rebuild/Reorganize) являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ администрирования Π‘Π£Π‘Π” для Π±ΠΎΡ€ΡŒΠ±Ρ‹ с Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ. Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ 1Π‘ Π΄Π΅Π»Π°Π΅Ρ‚ это автоматичСски Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ сТатии Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.