Π’ ΠΌΠΈΡ€Π΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… часто становится критичСским Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ, особСнно ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… прСдприятиях с тысячами Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ справочников. Одним ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… инструмСнтов ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы являСтся индСксация Ρ‚Π°Π±Π»ΠΈΡ† β€” ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ, Π½ΠΎ Π½Π΅ всС ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π΅Π³ΠΎ Π³Π»ΡƒΠ±ΠΈΠ½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ Π½ΡŽΠ°Π½ΡΡ‹ примСнСния.

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ Π½Π΅ просто ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксация Π² контСкстС 1Π‘ 8.3 ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… вСрсий ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. ΠœΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, ΠΊΠ°ΠΊ индСксы Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния запросов, ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ индСксов ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π² систСмС управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (Π‘Π£Π‘Π”), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… 1Π‘, ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΈΡ… использованиС ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ, Π½ΠΎ ΠΈ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ систСмы Π² 2-3 Ρ€Π°Π·Π°. ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»ΠΈΠΌ практичСским аспСктам: ΠΎΡ‚ создания индСксов Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ Π΄ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΠ»Π°Π½ΠΎΠ² выполнСния запросов.

Если Π²Ρ‹ администратор 1Π‘, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΠ»ΠΈ просто ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΠ΅Ρ‚Π΅ΡΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ β€” этот ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ систСмно ΠΏΠΎΠ΄ΠΎΠΉΡ‚ΠΈ ΠΊ вопросу ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠœΡ‹ ΠΈΠ·Π±Π΅Π³Π°Π΅ΠΌ повСрхностных ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΈ фокусируСмся Π½Π° Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π°ΠΆΠ½ΠΎ для повсСднСвной Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² 1Π‘.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксация Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½Π° Π½ΡƒΠΆΠ½Π° Π² 1Π‘

Π˜Π½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡ Ρ‚Π°Π±Π»ΠΈΡ† β€” это структура Π΄Π°Π½Π½Ρ‹Ρ…, которая ускоряСт поиск ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ: Π±Π΅Π· Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠ³ΠΎ указатСля Π²Π°ΠΌ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ страницу, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€. ИндСкс Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ β€” ΠΎΠ½ создаСт "ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π‘Π£Π‘Π” быстро Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ строки ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ критСриям.

Π’ контСкстС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ индСксы ΠΈΠ³Ρ€Π°ΡŽΡ‚ ΠΎΡΠΎΠ±ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ:

  • πŸ“Š ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ запросы ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… для Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (Ρ‡Π΅Ρ€Π΅Π· язык 1Π‘:Запрос)
  • ⚑ Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² 1Π‘ (ΠΎΡ‚ провСдСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π΄ΠΎ формирования ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ²) Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ быстрого доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ
  • πŸ’Ύ ΠžΠ±ΡŠΠ΅ΠΌΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… конфигурациях (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 1Π‘:ERP ΠΈΠ»ΠΈ 1Π‘:Π£Π’) ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΡ‡ΠΈΡΠ»ΡΡ‚ΡŒΡΡ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ записСй

Π‘Π΅Π· индСксов Π΄Π°ΠΆΠ΅ простой запрос Π½Π° Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π·Π° мСсяц ΠΌΠΎΠ³ Π±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΌΠΈΠ½ΡƒΡ‚Π°ΠΌΠΈ вмСсто сСкунд. Однако Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ индСксы β€” это Π½Π΅ волшСбная ΠΏΠ°Π»ΠΎΡ‡ΠΊΠ°. Они:

  • πŸ”„ Π£ΡΠΊΠΎΡ€ΡΡŽΡ‚ SELECT, Π½ΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΡΡŽΡ‚ INSERT, UPDATE ΠΈ DELETE (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ индСксы Ρ‚ΠΎΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ)
  • πŸ’½ Π—Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ мСсто Π½Π° дискС (ΠΈΠ½ΠΎΠ³Π΄Π° Π΄ΠΎ 30% ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹)
  • 🎯 Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ
πŸ“Š Как часто Π²Ρ‹ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ запросов Π² 1Π‘?
Никогда
Волько ΠΏΡ€ΠΈ ΠΆΠ°Π»ΠΎΠ±Π°Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ
РСгулярно ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΡŽ
Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ спСциализированныС инструмСнты

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ индСксация Π² Π‘Π£Π‘Π”, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… 1Π‘

1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ систСмами управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСны Microsoft SQL Server ΠΈ PostgreSQL. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ индСксации Π² Π½ΠΈΡ… ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹, Π½ΠΎ ΠΈ Π²Π°ΠΆΠ½Ρ‹Π΅ различия.

Π’ SQL Server (Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярная Π‘Π£Π‘Π” для 1Π‘ Π² России) индСксы ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Π²ΠΈΠ΄Π΅ B-Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² (balanced trees). Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ:

  • 🌳 Π”Π°Π½Π½Ρ‹Π΅ Π² индСксС хранятся Π² иСрархичСской структурС, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ·Π΅Π» содСрТит ΠΊΠ»ΡŽΡ‡ΠΈ ΠΈ ссылки Π½Π° Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ ΡƒΠ·Π»Ρ‹
  • ⚑ Поиск ΠΏΠΎ индСксу Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ O(log n) ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (Π³Π΄Π΅ n β€” количСство записСй), вмСсто O(n) ΠΏΡ€ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌ сканировании Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
  • πŸ”„ ΠŸΡ€ΠΈ вставкС Π½ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… B-Π΄Π΅Ρ€Π΅Π²ΠΎ автоматичСски балансируСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

Π’ PostgreSQL Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ B-Π΄Π΅Ρ€Π΅Π²ΡŒΡ для стандартных индСксов, Π½ΠΎ Π΅ΡΡ‚ΡŒ ΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹:

  • 🏷️ Hash-индСксы β€” эффСктивны для Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ совпадСния (=), Π½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π½Ρ‹Π΅ запросы (BETWEEN)
  • πŸ“Š GiST/GIN β€” для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с гСомСтричСскими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ полнотСкстовым поиском
  • πŸ” BRIN β€” ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ для ΠΎΡ‡Π΅Π½ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ† с СстСствСнным упорядочиваниСм (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ряды)

Однако Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° созданиС индСксов Ρ‡Π΅Ρ€Π΅Π·:

  • πŸ› οΈ Настройку структуры ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅
  • πŸ“ ИспользованиС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² Π² тСкстС запросов
  • πŸ”§ ΠŸΡ€ΡΠΌΠΎΠ΅ администрированиС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… спСциалистов)
πŸ’‘

Π’ 1Π‘ 8.3.20+ появилась Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Π½Ρ‹ выполнСния запросов прямо Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ это для Π°Π½Π°Π»ΠΈΠ·Π°, ΠΊΠ°ΠΊΠΈΠ΅ индСксы Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π²Π°ΡˆΠΈΡ… запросов.

Π’ΠΈΠΏΡ‹ индСксов Π² 1Π‘ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ

Π’ контСкстС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ нСсколько Ρ‚ΠΈΠΏΠΎΠ² индСксов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»ΠΈΠ±ΠΎ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ автоматичСски, Π»ΠΈΠ±ΠΎ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Рассмотрим ΠΈΡ… ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

Π’ΠΈΠΏ индСкса Когда создаСтся ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ
ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ АвтоматичСски для всСх Ρ‚Π°Π±Π»ΠΈΡ† ПолС Бсылка Π² справочниках Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ, кластСризованный (Π² SQL Server)
ИндСкс ΠΏΠΎ полю "Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ" АвтоматичСски для иСрархичСских справочников ПолС Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ Π² справочникС "НомСнклатура" УскоряСт построСниС ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΉ
ИндСкс ΠΏΠΎ полю "ΠŸΠΎΠΌΠ΅Ρ‚ΠΊΠ°Π£Π΄Π°Π»Π΅Π½ΠΈΡ" АвтоматичСски для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΎΠΉ удалСния Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΏΠΎ ΠŸΠΎΠΌΠ΅Ρ‚ΠΊΠ°Π£Π΄Π°Π»Π΅Π½ΠΈΡ = Π›ΠΎΠΆΡŒ ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅Π½ для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с "ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ" ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ
ИндСкс ΠΏΠΎ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°ΠΌ Π’Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ ПолС Артикул Π² Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Π΅ БоздаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² запросах ΠΏΠΎΠ»Π΅ΠΉ
Боставной индСкс Π’Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΈΠ»ΠΈ автоматичСски Поля Π”Π°Ρ‚Π° + ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½ для запросов с нСсколькими условиями

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

Однако Π΅ΡΡ‚ΡŒ Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ: порядок ΠΏΠΎΠ»Π΅ΠΉ Π² составном индСксС ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ИндСкс ΠΏΠΎ (А, Π‘) Π½Π΅ эквивалСнтСн индСксу ΠΏΠΎ (Π‘, А). Π‘Π£Π‘Π” ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π»Π΅Π²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ индСкса для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. НапримСр, индСкс ΠΏΠΎ (Π”Π°Ρ‚Π°, ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ) ускорит запрос с условиСм Π”Π°Ρ‚Π° BETWEEN.., Π½ΠΎ Π½Π΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈ поискС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ =...

Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ индСксы ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…?

Для SQL Server ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ запрос:

SELECT

t.name AS TableName,

i.name AS IndexName,

c.name AS ColumnName,

i.type_desc AS IndexType

FROM

sys.indexes i

INNER JOIN

sys.index_columns ic ON i.object_id = ic.object_id AND i.index_id = ic.index_id

INNER JOIN

sys.columns c ON ic.object_id = c.object_id AND ic.column_id = c.column_id

INNER JOIN

sys.tables t ON i.object_id = t.object_id

WHERE

i.name IS NOT NULL

ORDER BY

t.name, i.name, ic.key_ordinal;

Для PostgreSQL ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚:

SELECT

t.relname AS table_name,

i.relname AS index_name,

a.attname AS column_name

FROM

pg_class t,

pg_class i,

pg_index ix,

pg_attribute a

WHERE

t.oid = ix.indrelid

AND i.oid = ix.indexrelid

AND a.attrelid = t.oid

AND a.attnum = ANY(ix.indkey)

AND t.relkind = 'r'

ORDER BY

t.relname, i.relname;

Как индСксы Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ запросов Π² 1Π‘

Основная Ρ†Π΅Π»ΡŒ индСксов β€” ускорСниС Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ ΠΈΡ… влияниС Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠ³Ρ€Π°Π½Π½ΠΎ. Рассмотрим ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ аспСкты:

1. УскорСниС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ SELECT

ΠŸΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ настроСнных индСксах врСмя выполнСния запросов ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠΊΡ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Π² дСсятки ΠΈ сотни Ρ€Π°Π·. НапримСр:

  • πŸ” Запрос ВЫБРАВЬ * Π˜Π— Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.Π—Π°ΠΊΠ°Π·ΠŸΠΎΠΊΡƒΠΏΠ°Ρ‚Π΅Π»Ρ Π“Π”Π• НомСр = "12345" Π±Π΅Π· индСкса ΠΏΠΎ полю НомСр ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ сканирования Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
  • ⚑ Π‘ индСксом Π‘Π£Π‘Π” Π½Π°ΠΉΠ΄Π΅Ρ‚ запись Π·Π° 2-3 ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ чтСния индСксных страниц

2. Π—Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ INSERT, UPDATE ΠΈΠ»ΠΈ DELETE Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ обновлСния всСх индСксов Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚:

  • 🐒 ΠŸΡ€ΠΈ большом количСствС индСксов ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ записи ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΌΠ΅Π΄Π»ΡΡ‚ΡŒΡΡ Π² 2-5 Ρ€Π°Π·
  • πŸ’Ύ КаТдоС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ индСкса Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°

3. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы

  • πŸ’½ Π˜Π½Π΄Π΅ΠΊΡΡ‹ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ мСсто Π½Π° дискС (ΠΈΠ½ΠΎΠ³Π΄Π° Π΄ΠΎ 30-40% ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹)
  • πŸ”„ ΠŸΡ€ΠΈ Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±Π°Π·Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, REINDEX Π² PostgreSQL) трСбуСтся врСмя Π½Π° пСрСстройку
  • 🧹 ЀрагмСнтация индСксов со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ½ΠΈΠΆΠ°Ρ‚ΡŒ ΠΈΡ… ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ индСксы Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ваши запросы, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ»Π°Π½Ρ‹ выполнСния. Π’ 1Π‘ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ:

  • πŸ› οΈ Π§Π΅Ρ€Π΅Π· ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ запросов (начиная с вСрсии 8.3.20)
  • πŸ“Š Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π½Π΅ΡˆΠ½ΠΈΡ… инструмСнтов (SQL Server Management Studio, pgAdmin)
  • πŸ“ Π§Π΅Ρ€Π΅Π· Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Ρ… запросов Π½Π° сСрвСрС 1Π‘
πŸ’‘

Π˜Π½Π΄Π΅ΠΊΡΡ‹ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивны для ΠΏΠΎΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² условиях WHERE, JOIN ΠΈ ORDER BY. Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ индСксы Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для критичСски Π²Π°ΠΆΠ½Ρ‹Ρ… запросов β€” избыточная индСксация Π²Ρ€Π΅Π΄ΠΈΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с индСксами Π² 1Π‘

ВСория Π±Π΅Π· ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΌΠ°Π»ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π°. Π’ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с индСксами Π² Π²Π°ΡˆΠΈΡ… конфигурациях 1Π‘:

1. АнализируйтС Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ запросы

НС создавайтС индСксы "Π½Π° всякий случай". ВмСсто этого:

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅ запросы Ρ‡Π΅Ρ€Π΅Π· ΠΆΡƒΡ€Π½Π°Π» ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΠ»Π°Π½Ρ‹ выполнСния этих запросов

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅, ΠΊΠ°ΠΊΠΈΠ΅ поля Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² условиях

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ индСксы Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для этих ΠΏΠΎΠ»Π΅ΠΉ

-->

2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ составныС индСксы с ΡƒΠΌΠΎΠΌ

БоставныС индСксы ΠΏΠΎΠ»Π΅Π·Π½Ρ‹, Π½ΠΎ:

  • 🎯 Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΈΡ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ ΠΏΠΎΠ»Π΅ΠΉ
  • πŸ“ НС Π΄Π΅Π»Π°ΠΉΡ‚Π΅ индСксы с Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 3-4 полями β€” ΠΎΠ½ΠΈ становятся Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌΠΈ
  • πŸ”„ ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΎ порядкС ΠΏΠΎΠ»Π΅ΠΉ: сначала Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‡Π°Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² условиях

3. Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ индСксов

Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ индСксы Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎ сниТаСт ΠΈΡ… ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ. Для поддСрТания ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ:

  • πŸ”§ Π’ SQL Server ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ REORGANIZE ΠΈΠ»ΠΈ REBUILD
  • πŸ“Š Π’ PostgreSQL выполняйтС REINDEX ΠΈΠ»ΠΈ VACUUM FULL
  • πŸ“… ΠŸΠ»Π°Π½ΠΈΡ€ΡƒΠΉΡ‚Π΅ эти ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Ρ‹ минимальной Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ

4. Π£Ρ‡ΠΈΡ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ особСнности 1Π‘

Π’ 1Π‘ Π΅ΡΡ‚ΡŒ спСцифичСскиС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹:

  • πŸ”— Для Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.Π—Π°ΠΊΠ°Π·ΠŸΠΎΠΊΡƒΠΏΠ°Ρ‚Π΅Π»Ρ.ΠžΡΡ‚Π°Ρ‚ΠΊΠΈ) индСксы ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ автоматичСски
  • πŸ“‹ ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ структуры ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… (Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ²) индСксы ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ пСрСсоздания
  • πŸ”„ ПослС ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ провСряйтС Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ индСксов
πŸ’‘

Π’ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… конфигурациях 1Π‘ (Π£Π’, ERP, Π‘ΠŸ) ΡƒΠΆΠ΅ созданы основныС индСксы для критичСски Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ. ΠŸΠ΅Ρ€Π΅Π΄ созданиСм Π½ΠΎΠ²Ρ‹Ρ… индСксов ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π½Π΅ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅.

РаспространСнныС ошибки ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с индСксами

Π”Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ошибки ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с индСксами. Π’ΠΎΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнныС ΠΈΠ· Π½ΠΈΡ… ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ:

1. Π˜Π·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Π°Ρ индСксация

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ индСксов для всСх ΠΏΠΎΠ»Π΅ΠΉ "Π½Π° всякий случай" β€” ΠΎΠ΄Π½Π° ΠΈΠ· самых Π²Ρ€Π΅Π΄Π½Ρ‹Ρ… ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ:

  • 🐒 Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ замСдлСнию ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ записи
  • πŸ’Ύ НСоправданному расходу дискового пространства
  • 🧹 УслоТнСнию ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

2. Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ статистики

Π‘Π£Π‘Π” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ статистику ΠΎ распрСдСлСнии Π΄Π°Π½Π½Ρ‹Ρ… для Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π° выполнСния. Если статистика устарСла:

  • πŸ“‰ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ нСэффСктивный ΠΏΠ»Π°Π½
  • πŸ” Π˜Π½Π΄Π΅ΠΊΡΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚

РСшСниС: рСгулярно обновляйтС статистику (Π² SQL Server β€” UPDATE STATISTICS, Π² PostgreSQL β€” ANALYZE).

3. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ порядок ΠΏΠΎΠ»Π΅ΠΉ Π² составных индСксах

Как ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ, порядок ΠΏΠΎΠ»Π΅ΠΉ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅Π½. Випичная ошибка:

  • ❌ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ индСкса (ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ, Π”Π°Ρ‚Π°) ΠΊΠΎΠ³Π΄Π° Ρ‡Π°Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ ΠΏΠΎ Π΄Π°Ρ‚Π΅
  • βœ… ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ: (Π”Π°Ρ‚Π°, ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ)

4. Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ особСнностСй Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…

НС всС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΡƒΡŽΡ‚ΡΡ:

  • πŸ“ ВСкстовыС поля с большой Π΄Π»ΠΈΠ½ΠΎΠΉ (ΠΠ•ΠžΠ“Π ΠΠΠ˜Π§Π•ΠΠΠ«Π™) ΠΏΠ»ΠΎΡ…ΠΎ подходят для индСксации
  • πŸ”’ Для числовых ΠΏΠΎΠ»Π΅ΠΉ индСксы Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ эффСктивнСС, Ρ‡Π΅ΠΌ для строковых
  • πŸ—“οΈ Для Π΄Π°Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ спСциализированныС индСксы
πŸ’‘

ΠŸΠ΅Ρ€Π΅Π΄ созданиСм Π½ΠΎΠ²ΠΎΠ³ΠΎ индСкса всСгда Π·Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ сСбС Π΄Π²Π° вопроса: 1) Насколько часто это ΠΏΠΎΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² запросах? 2) Насколько ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ этих запросов для бизнСс-процСссов?

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ индСксами Π² 1Π‘

Π’ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ Π΅ΡΡ‚ΡŒ нСсколько способов Ρ€Π°Π±ΠΎΡ‚Ρ‹ с индСксами. Рассмотрим ΠΈΡ… ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ индСксов Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€

Для Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (справочников, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²) ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ прямо Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅:

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² Π΄Π΅Ρ€Π΅Π²Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…
  2. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° Π·Π°ΠΊΠ»Π°Π΄ΠΊΡƒ "Π Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹"
  3. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ ΠΈ установитС Ρ„Π»Π°Π³ "Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ"
  4. Для составных индСксов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π·Π°ΠΊΠ»Π°Π΄ΠΊΡƒ "Π˜Π½Π΄Π΅ΠΊΡΡ‹" Π² свойствах ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

2. ΠŸΡ€ΡΠΌΠ°Ρ Ρ€Π°Π±ΠΎΡ‚Π° с Π‘Π£Π‘Π”

Для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… администраторов доступны прямыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ SQL. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

БозданиС индСкса в SQL Server:

CREATE INDEX IX_Document_Number ON dbo._Document123 (Number)

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ составного индСкса Π² PostgreSQL:

CREATE INDEX idx_document_date_org ON document123 (date, organization)

3. ИспользованиС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² Π² запросах

Π’ языкС запросов 1Π‘ Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ для управлСния индСксами:

  • πŸ” Π˜ΠΠ”Π•ΠšΠ‘Π˜Π ΠžΠ’ΠΠ’Π¬ ПО β€” явноС ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ индСкса для использования
  • πŸ“‹ ΠŸΠ›ΠΠ Π—ΠΠŸΠ ΠžΠ‘Π β€” ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ запрос

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹:

ВЫБРАВЬ

НомСнклатура.НаимСнованиС,

НомСнклатура.Артикул

Π˜Π—

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.НомСнклатура КАК НомСнклатура

Π“Π”Π•

НомСнклатура.Артикул = "ABC123"

Π˜ΠΠ”Π•ΠšΠ‘Π˜Π ΠžΠ’ΠΠ’Π¬ ПО Артикул

4. ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ оптимизация

Для поддСрТания индСксов Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ состоянии:

  • πŸ“Š Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ встроСнныС ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² 1Π‘
  • πŸ› οΈ НастройтС рСгулярноС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ статистики Π² Π‘Π£Π‘Π”
  • πŸ“… ΠŸΠ»Π°Π½ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ индСксов Π² ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Ρ‹ Π½ΠΈΠ·ΠΊΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ
Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΉ индСкс?

Π’ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅:

1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² Π΄Π΅Ρ€Π΅Π²Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…

2. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° Π·Π°ΠΊΠ»Π°Π΄ΠΊΡƒ "Π˜Π½Π΄Π΅ΠΊΡΡ‹"

3. Π£Π΄Π°Π»ΠΈΡ‚Π΅ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΉ индСкс ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

Π§Π΅Ρ€Π΅Π· SQL:

DROP INDEX IX_UnusedIndex ON dbo._Document123

FAQ: ЧастыС вопросы ΠΏΠΎ индСксации Ρ‚Π°Π±Π»ΠΈΡ† Π² 1Π‘

❓ Бколько индСксов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π° ΠΎΠ΄Π½Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ?

ВСхничСского ограничСния Π½Π° количСство индСксов Π½Π΅Ρ‚, Π½ΠΎ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅:

  • Π’ SQL Server рСкомСндуСтся Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 5-10 индСксов Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ
  • Π’ PostgreSQL ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ большС, Π½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ индСкс ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы
  • Π’ 1Π‘ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ количСство зависит ΠΎΡ‚ спСцифики ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ

Π“Π»Π°Π²Π½Ρ‹ΠΉ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ β€” баланс ΠΌΠ΅ΠΆΠ΄Ρƒ ускорСниСм Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΈ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΠ΅ΠΌ записи.

❓ ΠŸΠΎΡ‡Π΅ΠΌΡƒ 1Π‘ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠΎΠΉ индСкс?

Π•ΡΡ‚ΡŒ нСсколько Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½:

  • πŸ“Š Бтатистика устарСла β€” ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Π΅Ρ‘ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ANALYZE (PostgreSQL) ΠΈΠ»ΠΈ UPDATE STATISTICS (SQL Server)
  • πŸ” УсловиС Π² запросС Π½Π΅ сСлСктивно (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ ΠΏΠΎ полю с Π½ΠΈΠ·ΠΊΠΎΠΉ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ)
  • πŸ“‹ Π‘Π£Π‘Π” Ρ€Π΅ΡˆΠΈΠ»Π°, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π½ΠΎΠ΅ сканированиС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ быстрСС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†)
  • πŸ”„ ИндСкс Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ β€” Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠŸΠ›ΠΠ Π—ΠΠŸΠ ΠžΠ‘Π Π² 1Π‘, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ Π²Ρ‹Π±Ρ€Π°Π» Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΠΏΠ»Π°Π½.

❓ НуТно Π»ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ поля Ρ‚ΠΈΠΏΠ° "Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹"?

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π΅Ρ‚. Поля с Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½ΠΎΠΉ:

  • πŸ“ ΠŸΠ»ΠΎΡ…ΠΎ подходят для индСксации ΠΈΠ·-Π·Π° большого Ρ€Π°Π·ΠΌΠ΅Ρ€Π°
  • πŸ” Π˜Π½Π΄Π΅ΠΊΡΡ‹ ΠΏΠΎ Π½ΠΈΠΌ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ мСста ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ
  • πŸ›‘ ΠœΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ошибкам ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ Π»ΠΈΠΌΠΈΡ‚ΠΎΠ² Ρ€Π°Π·ΠΌΠ΅Ρ€Π° индСкса

Π›ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½ΠΎΠΉ для индСксируСмых Π΄Π°Π½Π½Ρ‹Ρ….

❓ Как индСксы Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… Π² распрСдСлСнных Π±Π°Π·Π°Ρ… 1Π‘?

Π’ распрСдСлСнных Π±Π°Π·Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (Π Π˜Π‘) индСксы:

  • πŸ”„ Π£Π²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ объСм ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ синхронизации
  • 🐒 ΠœΠΎΠ³ΡƒΡ‚ Π·Π°ΠΌΠ΅Π΄Π»ΡΡ‚ΡŒ процСсс ΠΎΠ±ΠΌΠ΅Π½Π° ΠΈΠ·-Π·Π° нСобходимости обновлСния индСксов
  • πŸ“‹ Π”ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ Π½Π° всСх ΡƒΠ·Π»Π°Ρ… для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠŸΡ€ΠΈ настройкС Π Π˜Π‘ рСкомСндуСтся:

  • ΠœΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ количСство индСксов Π½Π° ΡƒΠ·Π»Π°Ρ…
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ схСмы индСксации Π½Π° всСх Π±Π°Π·Π°Ρ…
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ синхронизации послС добавлСния Π½ΠΎΠ²Ρ‹Ρ… индСксов
❓ МоТно Π»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ Π² 1Π‘?

ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ нСльзя, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π·Π°Π»ΠΎΠΆΠ΅Π½Π° Π² ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Однако ΠΌΠΎΠΆΠ½ΠΎ:

  • πŸ› οΈ ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ созданиС индСксов Ρ‡Π΅Ρ€Π΅Π· настройки ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ
  • πŸ“‹ Π£Π΄Π°Π»ΡΡ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ индСксы послС ΠΈΡ… автоматичСского создания
  • πŸ”§ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прямыС SQL-запросы для управлСния индСксами (для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… администраторов)

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ индСксы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ полю Бсылка) критичСски Π²Π°ΠΆΠ½Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒΡΡ.