Когда Ρ€Π΅Ρ‡ΡŒ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΎΠ± ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π² 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅, Ρ‚Π΅Ρ€ΠΌΠΈΠ½ «индСксированиС Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ²Β» Π·Π²ΡƒΡ‡ΠΈΡ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅ часто, ΠΊΠ°ΠΊ ΠΈ Β«ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹Β». Но Ссли с обновлСниями всё Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ понятно, Ρ‚ΠΎ с индСксами Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ администраторов Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ вопросы. ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ΄Π½ΠΈ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΡƒΡŽΡ‚ΡΡ автоматичСски, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ β€” Π½Π΅Ρ‚? Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ индСксы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ, Π½ΠΎ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ систСму? И Π³Π»Π°Π²Π½ΠΎΠ΅ β€” Ρ‡Ρ‚ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ происходит Β«ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌΒ», ΠΊΠΎΠ³Π΄Π° 1Π‘ индСксируСт Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚?

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

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ индСксированиС Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ² Π² 1Π‘ простыми словами

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

Π’ контСкстС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ индСкс β€” это слуТСбный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ:

  • πŸ“Œ УскоряСт Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌΡƒ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, поиск Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠΎ Π΄Π°Ρ‚Π΅ ΠΈΠ»ΠΈ Π½ΠΎΠΌΠ΅Ρ€Ρƒ).
  • πŸ”„ АвтоматичСски обновляСтся ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ записСй).
  • βš–οΈ Π’Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсов для хранСния ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ (Ρ‡Π΅ΠΌ большС индСксов, Ρ‚Π΅ΠΌ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ записи).

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ индСксы ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π½Π΅ Π² самой 1Π‘, Π° Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π‘Π£Π‘Π” (SQL Server, PostgreSQL, IBM DB2 ΠΈ Π΄Ρ€.). ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ лишь ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½Π° созданиС индСкса, Π° дальнСйшая Ρ€Π°Π±ΠΎΡ‚Π° лоТится Π½Π° ΠΏΠ»Π΅Ρ‡ΠΈ сСрвСра Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. ИмСнно поэтому ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ индСксов зависит Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 1Π‘, Π½ΠΎ ΠΈ ΠΎΡ‚ настроСк Π‘Π£Π‘Π”, Π΅Ρ‘ вСрсии ΠΈ Π΄Π°ΠΆΠ΅ Β«ΠΆΠ΅Π»Π΅Π·Π°Β», Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

πŸ“Š ΠšΠ°ΠΊΡƒΡŽ Π‘Π£Π‘Π” Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ с 1Π‘?
MS SQL Server
PostgreSQL
IBM DB2
Oracle
Другая

Π’ΠΈΠΏΡ‹ индСксов Π² 1Π‘: ΠΊΠ°ΠΊΠΈΠ΅ Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ

Π’ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3 сущСствуСт нСсколько Ρ‚ΠΈΠΏΠΎΠ² индСксов, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π΅ΡˆΠ°Π΅Ρ‚ свои Π·Π°Π΄Π°Ρ‡ΠΈ. Π Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ ΠΈΡ… ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ для своСй ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

Π’ΠΈΠΏ индСкса НазначСниС ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ
ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ индСкс УскорСниС поиска ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρƒ ИндСкс ΠΏΠΎ полю НомСр Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ Π—Π°ΠΊΠ°Π·ΠŸΠΎΠΊΡƒΠΏΠ°Ρ‚Π΅Π»Ρ Π‘Π°ΠΌΡ‹ΠΉ простой ΠΈ распространённый Ρ‚ΠΈΠΏ. Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½ для ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.
Боставной индСкс УскорСниС поиска ΠΏΠΎ нСскольким Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°ΠΌ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ИндСкс ΠΏΠΎ ΠΏΠ°Ρ€Π΅ (ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚, Π”Π°Ρ‚Π°) Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ РСализацияВоваровУслуг ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΏΠΎΠ»Π΅ΠΉ Π² индСксС Π²Π°ΠΆΠ΅Π½! НапримСр, индСкс (А, Π‘) Π½Π΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈ поискС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ Π‘.
Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ индСкс Гарантия ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ + ускорСниС поиска ИндСкс ΠΏΠΎ полю Код Π² справочникС НомСнклатура Π‘Π£Π‘Π” Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ€Π³Π°Ρ‚ΡŒ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ΡΡ значСния.
ΠŸΠΎΠ»Π½ΠΎΡ‚Π΅ΠΊΡΡ‚ΠΎΠ²Ρ‹ΠΉ индСкс Поиск ΠΏΠΎ тСкстовому содСрТимому (Π½Π΅ ΠΏΡƒΡ‚Π°ΠΉΡ‚Π΅ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ индСксом ΠΏΠΎ строковому полю!) Поиск ΠΏΠΎ полю ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ Π—Π°ΡΠ²ΠΊΠ°ΠΠ°ΠžΠΊΠ°Π·Π°Π½ΠΈΠ΅Π£ΡΠ»ΡƒΠ³ Π’Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ настройки Π² Π‘Π£Π‘Π”. Π’ 1Π‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π΅Π΄ΠΊΠΎ.

Особого внимания Π·Π°ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ составныС индСксы. Π˜Ρ… созданиС ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ΠΎ, Ссли Π²Ρ‹ часто выполняСтС Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ с условиями ΠΏΠΎ нСскольким полям ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. НапримСр, Ссли Π² ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π΅ ΠŸΡ€ΠΎΠ΄Π°ΠΆΠΈ ΠΏΠΎ ΠΊΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Π°ΠΌ всСгда Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠ΅Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Ρƒ ΠΈ ΠŸΠ΅Ρ€ΠΈΠΎΠ΄Ρƒ, Ρ‚ΠΎ составной индСкс (ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚, Π”Π°Ρ‚Π°) Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ускорит Ρ€Π°Π±ΠΎΡ‚Ρƒ. Однако ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅: Ρ‡Π΅ΠΌ большС ΠΏΠΎΠ»Π΅ΠΉ Π² индСксС, Ρ‚Π΅ΠΌ ΠΎΠ½ «тяТСлСС» для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ.

πŸ’‘

ΠŸΠ΅Ρ€Π΅Π΄ созданиСм составного индСкса ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ запросы Π² Π–ΡƒΡ€Π½Π°Π»Π΅ рСгистрации (Ρ€Π°Π·Π΄Π΅Π» SQL). Часто оказываСтся, Ρ‡Ρ‚ΠΎ достаточно простого индСкса ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ полю.

Как 1Π‘ Ρ€Π΅ΡˆΠ°Π΅Ρ‚, ΠΊΠ°ΠΊΠΈΠ΅ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ автоматичСски

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ Π½Π΅ создаёт индСксы Π½Π°ΡƒΠ³Π°Π΄ β€” Π·Π° этим стоит чёткая Π»ΠΎΠ³ΠΈΠΊΠ°, залоТСнная Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ. АвтоматичСскоС индСксированиС зависит ΠΎΡ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ²:

  1. Π’ΠΈΠΏ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°. Π˜Π½Π΄Π΅ΠΊΡΡ‹ автоматичСски ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ для:
    • πŸ”’ Π Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ² с Ρ‚ΠΈΠΏΠΎΠΌ Число, Π”Π°Ρ‚Π°, Π‘ΡƒΠ»Π΅Π²ΠΎ (Ссли ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² условиях ΠΎΡ‚Π±ΠΎΡ€ΠΎΠ²).
    • πŸ”€ Π Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ² с Ρ‚ΠΈΠΏΠΎΠΌ Π‘Ρ‚Ρ€ΠΎΠΊΠ°, Ссли ΠΈΡ… Π΄Π»ΠΈΠ½Π° Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 20 символов (для Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… строк индСкс Π½Π΅ создаётся).
    • πŸ”‘ Π Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ², ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΊΠ°ΠΊ Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ (Ρ„Π»Π°Π³ Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² свойствах Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°).
  • ИспользованиС Π² запросах. Если Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ часто Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π² условиях Π“Π”Π• ΠΈΠ»ΠΈ Π£ΠŸΠžΠ Π―Π”ΠžΠ§Π˜Π’Π¬ ПО, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΅ΠΌΡƒ Π½ΡƒΠΆΠ΅Π½ индСкс.
  • Бвязи ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Π Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ ссылками Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅), часто ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΡƒΡŽΡ‚ΡΡ автоматичСски.
  • Однако автоматичСскоС индСксированиС β€” Π½Π΅ панацСя. НапримСр, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π½Π΅ создаст индСкс для Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π° Ρ‚ΠΈΠΏΠ° Π₯ранилищСЗначСния ΠΈΠ»ΠΈ Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² запросах. Π’Π°ΠΊΠΆΠ΅ индСксы Π½Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ для Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ² с Ρ‚ΠΈΠΏΠΎΠΌ ВСкст (Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ строки) ΠΈΠ»ΠΈ Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ.

    ΠŸΠΎΡ‡Π΅ΠΌΡƒ строковыС Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ Π΄Π»ΠΈΠ½Π½Π΅Π΅ 20 символов Π½Π΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΡƒΡŽΡ‚ΡΡ автоматичСски?

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

    Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ индСксы ΡƒΠΆΠ΅ созданы Π² вашСй Π±Π°Π·Π΅, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ:

    • πŸ› οΈ ВстроСнным ΠΎΡ‚Ρ‡Ρ‘Ρ‚ΠΎΠΌ Анализ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (Ρ€Π°Π·Π΄Π΅Π» АдминистрированиС β†’ ВСстированиС ΠΈ исправлСниС).
    • πŸ” Запросом ΠΊ систСмным Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ Π‘Π£Π‘Π” (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для MS SQL:
      SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID('Π’Π°ΡˆΠ°Π’Π°Π±Π»ΠΈΡ†Π°')
    πŸ’‘

    АвтоматичСскоС индСксированиС β€” это компромисс ΠΌΠ΅ΠΆΠ΄Ρƒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΈ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ Π½Π° запись. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° стараСтся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ индСксы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ принСсут ΠΏΠΎΠ»ΡŒΠ·Ρƒ majority ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π½ΠΎ Π² спСцифичСских конфигурациях ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ручная настройка.

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

    Если автоматичСскиС индСксы Π½Π΅ ΠΏΠΎΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ ваши Π½ΡƒΠΆΠ΄Ρ‹, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡ… Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Для этого:

    1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€.
    2. НайдитС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… (справочник, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, рСгистр), Π³Π΄Π΅ трСбуСтся Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ индСкс.
    3. Π’ Π΄Π΅Ρ€Π΅Π²Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π΅Π³ΠΎ свойства (Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΊΠ»ΠΈΠΊ ΠΈΠ»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ° F4).
    4. УстановитС Ρ„Π»Π°Π³ Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ (для ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ индСкса) ΠΈΠ»ΠΈ Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ индСкс (Ссли трСбуСтся гарантия ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ).
    5. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ….

    Для создания составного индСкса потрСбуСтся:

    1. Π’ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² мСню АдминистрированиС β†’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° β†’ Настройка Π‘Π£Π‘Π”.
    2. Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ индСкс (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Document123 β€” Ρ‚Π°Π±Π»ΠΈΡ†Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° РСализацияВоваровУслуг).
    3. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ индСкс, ΡƒΠΊΠ°Π·Π°Π² поля ΠΈ порядок сортировки.

    Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ индСкса выполняСтся Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ β€” достаточно ΡΠ½ΡΡ‚ΡŒ Ρ„Π»Π°Π³ Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² свойствах Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π° ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ индСкс Ρ‡Π΅Ρ€Π΅Π· настройку Π‘Π£Π‘Π”.

    Анализ ΠΆΡƒΡ€Π½Π°Π»Π° рСгистрации Π½Π° частыС запросы с этим Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠΌ|ΠžΡ†Π΅Π½ΠΊΠ° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (индСкс ΠΏΠΎ полю с 2-3 ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ значСниями бСсполСзСн)|ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° Π‘Π£Π‘Π” (индСксы Π·Π°ΠΌΠ΅Π΄Π»ΡΡŽΡ‚ вставку/ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅)|ВСстированиС Π½Π° ΠΊΠΎΠΏΠΈΠΈ Π±Π°Π·Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ систСмС

    -->

    Π’Π°ΠΆΠ½ΠΎ: послС измСнСния индСксов ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ВСстированиС ΠΈ исправлСниС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Ρ‹ (мСню АдминистрированиС), Ρ‡Ρ‚ΠΎΠ±Ρ‹ привСсти структуру Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² соотвСтствиС с ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ.

    Когда индСксы врСдят: Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ

    Π˜Π½Π΄Π΅ΠΊΡΡ‹ β€” это Π½Π΅ волшСбная ΠΏΠ°Π»ΠΎΡ‡ΠΊΠ°, Π° инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ использовании ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡ…ΡƒΠ΄ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π’ΠΎΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространённыС ошибки:

    • 🚫 Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ всСх Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ² подряд. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ индСкс Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ мСсто Π½Π° дискС ΠΈ замСдляСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ записи. Если Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 10 индСксов, Π° запись обновляСт всС 10 β€” врСмя выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ вырастСт Π² Ρ€Π°Π·Ρ‹.
    • πŸ”„ Π˜Π½Π΄Π΅ΠΊΡΡ‹ ΠΏΠΎ полям с Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΠ΅Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ. НапримСр, индСкс ΠΏΠΎ полю ΠŸΠΎΠΌΠ΅Ρ‚ΠΊΠ°Π£Π΄Π°Π»Π΅Π½ΠΈΡ (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ значСния Π˜ΡΡ‚ΠΈΠ½Π°/Π›ΠΎΠΆΡŒ) бСсполСзСн β€” Π‘Π£Π‘Π” ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΡ€ΠΎΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ.
    • πŸ”— Π˜Π·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ составныС индСксы. Если Ρƒ вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ индСксы (А, Π‘) ΠΈ (А, Π‘, Π’), Ρ‚ΠΎ индСкс (А, Π‘) ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ β€” ΠΎΠ½ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‡Π°ΡΡ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ.
    • πŸ“‰ Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ статистики использования. Π˜Π½Π΄Π΅ΠΊΡΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² запросах, слСдуСт ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ. Π’ MS SQL это ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ запросом:
      SELECT * FROM sys.dm_db_index_usage_stats

    Π•Ρ‰Ρ‘ ΠΎΠ΄Π½Π° распространённая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” фрагмСнтация индСксов. Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ индСксы Β«Ρ€Π°Π·Ρ€Π°ΡΡ‚Π°ΡŽΡ‚ΡΡΒ» ΠΈ становятся нСэффСктивными. Π’ MS SQL это лСчится ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ REORGANIZE ΠΈΠ»ΠΈ REBUILD, Π² PostgreSQL β€” ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ VACUUM FULL. Π’ 1Π‘ для этого Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ВСстированиС ΠΈ исправлСниС с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ ΠŸΠ΅Ρ€Π΅ΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ индСксов.

    πŸ’‘

    РСгулярно (Ρ€Π°Π· Π² 1-3 мСсяца) провСряйтС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ индСксов. Для MS SQL ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ β€” 30%. Если Π²Ρ‹ΡˆΠ΅ β€” трСбуСтся рСорганизация.

    ⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… вСрсиях 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ (особСнно Π΄ΠΎ 8.3.10) ΠΏΡ€ΠΈ массовом ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² индСксы ΠΌΠΎΠ³Π»ΠΈ Β«Π»ΠΎΠΌΠ°Ρ‚ΡŒΡΡΒ», Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ ошибкам ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅. ПослС Ρ‚Π°ΠΊΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ выполняйтС ВСстированиС ΠΈ исправлСниС с пСрСстроСниСм индСксов.

    ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹: ΠΊΠ°ΠΊ индСксы Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

    Π Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ кСйсы, Π³Π΄Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ настройка индСксов Π΄Π°Π»Π° ΠΎΡ‰ΡƒΡ‚ΠΈΠΌΡ‹ΠΉ прирост ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

    КСйс 1. ΠœΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ ΠΎΡ‚Ρ‡Ρ‘Ρ‚ ΠΏΠΎ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ°ΠΌ

    Π’ Π±Π°Π·Π΅ с 5 ΠΌΠ»Π½ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² РСализацияВоваровУслуг ΠΎΡ‚Ρ‡Ρ‘Ρ‚ ΠŸΡ€ΠΎΠ΄Π°ΠΆΠΈ ΠΏΠΎ Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Π΅ выполнялся 45 ΠΌΠΈΠ½ΡƒΡ‚. Анализ ΠΏΠΎΠΊΠ°Π·Π°Π», Ρ‡Ρ‚ΠΎ основноС врСмя ΡƒΡ…ΠΎΠ΄ΠΈΠ»ΠΎ Π½Π° Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ ΠΏΠΎ полям НомСнклатура ΠΈ Π”Π°Ρ‚Π°. ПослС создания составного индСкса (НомСнклатура, Π”Π°Ρ‚Π°) врСмя ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΠ»ΠΎΡΡŒ Π΄ΠΎ 3 ΠΌΠΈΠ½ΡƒΡ‚.

    КСйс 2. Π’ΠΎΡ€ΠΌΠΎΠ·Π° ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

    ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠŸΠΎΡΡ‚ΡƒΠΏΠ»Π΅Π½ΠΈΠ΅Π’ΠΎΠ²Π°Ρ€ΠΎΠ² систСма «подвисала» Π½Π° 10-15 сСкунд. Оказалось, Ρ‡Ρ‚ΠΎ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π±Ρ‹Π»ΠΎ создано 12 индСксов (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ автоматичСскиС ΠΈ Ρ€ΡƒΡ‡Π½Ρ‹Π΅). ПослС удалСния 5 Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… индСксов врСмя провСдСния ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΠ»ΠΎΡΡŒ Π΄ΠΎ 1-2 сСкунд.

    КСйс 3. ΠŸΠΎΠ»Π½ΠΎΡ‚Π΅ΠΊΡΡ‚ΠΎΠ²Ρ‹ΠΉ поиск ΠΏΠΎ коммСнтариям

    Π’ справочникС ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Ρ‹ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ поиск ΠΏΠΎ полю ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ (тСкст Π΄ΠΎ 1000 символов). ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ индСкс Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π», Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ поиск ΡˆΡ‘Π» ΠΏΠΎ подстрокС (ΠŸΠžΠ”ΠžΠ‘ΠΠž). РСшСниС β€” созданиС полнотСкстового индСкса Π² MS SQL:

    CREATE FULLTEXT INDEX ON ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Ρ‹(ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅)

    ВрСмя поиска ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΠ»ΠΎΡΡŒ с 20 сСкунд Π΄ΠΎ 0.5 сСкунды.

    Π­Ρ‚ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ индСксы ΠΌΠΎΠ³ΡƒΡ‚ ΠΊΠ°ΠΊ спасти ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, Ρ‚Π°ΠΊ ΠΈ ΡƒΡΡƒΠ³ΡƒΠ±ΠΈΡ‚ΡŒ Π΅Ρ‘. Π“Π»Π°Π²Π½ΠΎΠ΅ β€” Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ запросы ΠΈ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ измСнСния Π½Π° ΠΊΠΎΠΏΠΈΠΈ Π±Π°Π·Ρ‹.

    Как ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΡ‚ΡŒ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ индСксы Π² 1Π‘

    Π§Ρ‚ΠΎΠ±Ρ‹ индСксы приносили ΠΏΠΎΠ»ΡŒΠ·Ρƒ, Π° Π½Π΅ Π²Ρ€Π΅Π΄, ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ рСгулярно ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ. Π’ΠΎΡ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ инструмСнты ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

    • πŸ“Š Π–ΡƒΡ€Π½Π°Π» рСгистрации (Ρ€Π°Π·Π΄Π΅Π» SQL). ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊΠΈΠ΅ запросы Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π΄ΠΎΠ»Π³ΠΎ ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ полям ΠΈΠ΄ΡƒΡ‚ ΠΎΡ‚Π±ΠΎΡ€Ρ‹.
    • πŸ” План выполнСния запроса. Π’ MS SQL Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
      SET SHOWPLAN_TEXT ON

      Π­Ρ‚ΠΎ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π»ΠΈ индСксы Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ запросС.

    • πŸ“ˆ БистСмныС прСдставлСния Π‘Π£Π‘Π”. НапримСр, Π² PostgreSQL:
      SELECT * FROM pg_stat_user_indexes

      ΠŸΠΎΠΊΠ°ΠΆΠ΅Ρ‚, ΠΊΠ°ΠΊΠΈΠ΅ индСксы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, Π° ΠΊΠ°ΠΊΠΈΠ΅ β€” Β«ΠΌΡ‘Ρ€Ρ‚Π²Ρ‹ΠΉ Π³Ρ€ΡƒΠ·Β».

    • πŸ› οΈ ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° «Анализ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈΒ» (Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ поставку 1Π‘). АнализируСт ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

    РСкомСндуСмая ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ:

    • πŸ”„ Для Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π±Π°Π· β€” Ρ€Π°Π· Π² мСсяц.
    • πŸ“… Для ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ β€” Ρ€Π°Π· Π² ΠΊΠ²Π°Ρ€Ρ‚Π°Π».
    • ⚑ ПослС массовых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ) β€” сразу.
    ⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΎΠ±Π»Π°Ρ‡Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ 1Π‘:Fresh, возмоТности Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ управлСния индСксами ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹. Π’ этом случаС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ с тСхничСской ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ 1Π‘.

    FAQ: ЧастыС вопросы ΠΎΠ± индСксировании Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ² Π² 1Π‘

    МоТно Π»ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ Π² рСгистрах накоплСния?

    Π”Π°, Π½ΠΎ с ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ. Π˜Π½Π΄Π΅ΠΊΡΡ‹ Π² рСгистрах накоплСния (РСгистрНакоплСния) ΠΌΠΎΠ³ΡƒΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ ΠΎΡ‚Ρ‡Ρ‘Ρ‚Ρ‹, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ сильно Π·Π°ΠΌΠ΅Π΄Π»ΡΡŽΡ‚ записи Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ. РСкомСндуСтся ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ измСрСния, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ часто ΠΈΠ΄Ρ‘Ρ‚ ΠΎΡ‚Π±ΠΎΡ€ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, НомСнклатура ΠΈΠ»ΠΈ Π‘ΠΊΠ»Π°Π΄). Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ индСксов ΠΏΠΎ рСсурсам (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ) β€” ΠΎΠ½ΠΈ Ρ€Π΅Π΄ΠΊΠΎ приносят ΠΏΠΎΠ»ΡŒΠ·Ρƒ.

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

    Π­Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ нСскольким ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ:

    1. Π‘Π£Π‘Π” Ρ€Π΅ΡˆΠΈΠ»Π°, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π½ΠΎΠ΅ сканированиС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Table Scan) быстрСС, Ρ‡Π΅ΠΌ использованиС Π½ΠΎΠ²ΠΎΠ³ΠΎ индСкса. Π­Ρ‚ΠΎ часто происходит, Ссли индСкс ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΈΠ·ΠΊΡƒΡŽ ΡΠ΅Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ полю с 2-3 ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ значСниями).
    2. ИндСкс Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ.
    3. Π’ запросС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция Π½Π°Π΄ индСксируСмым ΠΏΠΎΠ»Π΅ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π›Π•Π’(НомСр, 3)), Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ индСкс Π½Π΅ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΌ.

    ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΠ»Π°Π½ выполнСния запроса, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ.

    Как ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ Ρ‚ΠΈΠΏΠ° Β«Π₯ранилищСЗначСния»?

    ΠŸΡ€ΡΠΌΠΎΠ΅ индСксированиС для Ρ‚ΠΈΠΏΠ° Π₯ранилищСЗначСния Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ β€” Π‘Π£Π‘Π” Π½Π΅ ΡƒΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² индСксах. Однако ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ вычисляСмый Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ…ΡΡˆ ΠΎΡ‚ содСрТимого Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°) ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ:

    // Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°
    

    Ѐункция ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ₯эшΠ₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°()

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π‘Ρ‚Ρ€ΠΎΠΊΠ°(Π₯ΡΡˆΠ”Π°Π½Π½Ρ‹Ρ…(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π’Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, "MD5"));

    ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

    Π—Π°Ρ‚Π΅ΠΌ индСксируйтС этот вычисляСмый Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚.

    НуТно Π»ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ Π² справочниках с нСбольшим количСством записСй (Π΄ΠΎ 1000)?

    Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π΅Ρ‚. Для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ† ΠΏΠΎΠ»Π½ΠΎΠ΅ сканированиС (Table Scan) часто быстрСС, Ρ‡Π΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ индСксу. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ β€” Ссли справочник Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² соСдинСниях (JOIN) с ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ. Π’ этом случаС индСкс ΠΏΠΎ полю-ссылкС ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

    Как пСрСнСсти индСксы ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π‘Π£Π‘Π” (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с MS SQL Π½Π° PostgreSQL)?

    ΠŸΡ€ΠΈ пСрСносС Π±Π°Π·Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π‘Π£Π‘Π” индСксы Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ автоматичСски. Π’Π°ΠΌ потрСбуСтся:

    1. Π­ΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ список индСксов ΠΈΠ· старой Π‘Π£Π‘Π” (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, запросом ΠΊ систСмным Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ).
    2. ПослС пСрСноса Π΄Π°Π½Π½Ρ‹Ρ… ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ индСксы Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π² Π½ΠΎΠ²ΠΎΠΉ Π‘Π£Π‘Π”, учитывая Π΅Ρ‘ синтаксис.
    3. ΠŸΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ β€” Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ индСксы ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ Π² MS SQL ΠΈ PostgreSQL.

    Для PostgreSQL ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ настройка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² work_mem ΠΈ maintenance_work_mem для эффСктивной Ρ€Π°Π±ΠΎΡ‚Ρ‹ с индСксами.