Π Π°Π±ΠΎΡ‚Π° с большими объСмами Π΄Π°Π½Π½Ρ‹Ρ… Π² систСмС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ часто Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π³ΠΈΠ±ΠΊΠΎΠΉ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, особСнно ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ тСкстовых полях, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ наимСнования Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈΠ»ΠΈ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚ΠΎΠ². Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ сравнСния Β«Ρ€Π°Π²Π½ΠΎΒ» ΠΈΠ»ΠΈ Β«Π½Π΅ Ρ€Π°Π²Π½ΠΎΒ» ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ нСдостаточными, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ записи ΠΏΠΎ части слова ΠΈΠ»ΠΈ ΠΏΠΎ маскС. ИмСнно здСсь Π½Π° сцСну Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠŸΠžΠ”ΠžΠ‘ΠΠž, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΎΠΌ SQL-конструкции LIKE, Π½ΠΎ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄ синтаксис встроСнного языка 1Π‘.

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

Бинтаксис ΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ использованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠŸΠžΠ”ΠžΠ‘ΠΠž Π² языкС запросов 1Π‘ позволяСт ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ строк, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ. БинтаксичСски ΠΎΠ½ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ матСматичСскоС сравнСниС, Π³Π΄Π΅ справа ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° указываСтся строка-маска. Π­Ρ‚Π° маска ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы-Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ символов допустимы Π² искомом ΠΏΠΎΠ»Π΅. ИспользованиС Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΊ Π² условии соСдинСния Ρ‚Π°Π±Π»ΠΈΡ†, Ρ‚Π°ΠΊ ΠΈ Π² Π±Π»ΠΎΠΊΠ΅ Π“Π”Π• основного запроса.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ сравнСния, Π³Π΄Π΅ систСма ΠΈΡ‰Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΠ΅ совпадСниС Π±Π°ΠΉΡ‚ Π·Π° Π±Π°ΠΉΡ‚ΠΎΠΌ, ΠŸΠžΠ”ΠžΠ‘ΠΠž Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ структуру строки. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΌΠΎΡ‰Π½Ρ‹ΠΌ инструмСнтом для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ поисковых интСрфСйсов, Π³Π΄Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΎΠ²Π°Ρ€Π° ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. Однако стоит ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ свою Ρ†Π΅Π½Ρƒ: Ρ‡Π΅ΠΌ слоТнСС маска ΠΈ Ρ‡Π΅ΠΌ мСньшС ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚ΠΈΠΊΠΈ Π² Π½Π°Ρ‡Π°Π»Π΅ строки, Ρ‚Π΅ΠΌ большС рСсурсов процСссора ΠΈ дисковой подсистСмы потрСбуСтся для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ запроса.

Рассмотрим Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования Π² ΠΊΠΎΠ΄Π΅ встроСнного языка. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ запрос ΠΊ рСгистру свСдСний ΠΈΠ»ΠΈ справочнику, примСняя условиС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ:

Запрос = Новый Запрос;

Запрос.ВСкст =

"ВЫБРАВЬ

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

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

|Π˜Π—

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

|Π“Π”Π•

| Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.НомСнклатура.НаимСнованиС ΠŸΠžΠ”ΠžΠ‘ΠΠž &Маска";

Запрос.Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€("Маска","%Насос%");

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Запрос.Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ.Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ;

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ символ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π° % ΠΈΠ³Ρ€Π°Π΅Ρ‚ Ρ€ΠΎΠ»ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ замСнитСля любой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ символов. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ систСма Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚ всС Ρ‚ΠΎΠ²Π°Ρ€Ρ‹, Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… встрСчаСтся слово"Насос", нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ стоит Π΄ΠΎ ΠΈΠ»ΠΈ послС Π½Π΅Π³ΠΎ. Π’Π°ΠΆΠ½ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы, Ссли ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ искомого тСкста, Π° Π½Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ конструкциСй.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ использовании ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠŸΠžΠ”ΠžΠ‘ΠΠž Π² условиях соСдинСния Ρ‚Π°Π±Π»ΠΈΡ† (JOIN) ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… сравниваСмых ΠΏΠΎΠ»Π΅ΠΉ совмСстим. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ строку с числом ΠΈΠ»ΠΈ Π΄Π°Ρ‚ΠΎΠΉ Ρ‡Π΅Ρ€Π΅Π· этот ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС выполнСния запроса.

πŸ’‘

Если Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ слова Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° рСгистра, ΠΈΠ½ΠΎΠ³Π΄Π° эффСктивнСС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ БВРОКА Π² сочСтании с Π’Π Π•Π“, Ρ‡Π΅ΠΌ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° слоТныС маски ΠŸΠžΠ”ΠžΠ‘ΠΠž, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартныС индСксы.

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы ΠΈ маски поиска

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

Π‘ΠΈΠΌΠ²ΠΎΠ» % (ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚) замСняСт Π»ΡŽΠ±ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов любой Π΄Π»ΠΈΠ½Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡƒΡΡ‚ΡƒΡŽ строку. Π­Ρ‚ΠΎ самый распространСнный, Π½ΠΎ ΠΈ самый"тяТСлый" для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ символ, особСнно Ссли ΠΎΠ½ стоит Π² Π½Π°Ρ‡Π°Π»Π΅ строки. Π‘ΠΈΠΌΠ²ΠΎΠ» _ (ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅) замСняСт Ρ€ΠΎΠ²Π½ΠΎ ΠΎΠ΄ΠΈΠ½ любой символ. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ Π΄Π»ΠΈΠ½Ρƒ слова, Π½ΠΎ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π±ΡƒΠΊΠ²Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ поискС ΠΊΠΎΠ΄ΠΎΠ² ΠΈΠ»ΠΈ Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»ΠΎΠ² с извСстной структурой.

  • πŸ” % β€” любая строка ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ (Π°Π½Π°Π»ΠΎΠ³.* Π² рСгулярных выраТСниях).
  • πŸ”€ _ β€” Ρ€ΠΎΠ²Π½ΠΎ ΠΎΠ΄ΠΈΠ½ любой символ (Π°Π½Π°Π»ΠΎΠ³. Π² рСгулярных выраТСниях).
  • πŸ“ [...] β€” любой ΠΎΠ΄ΠΈΠ½ символ ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ€Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, [А-Π―]).
  • 🚫 [^...] β€” любой ΠΎΠ΄ΠΈΠ½ символ, НЕ входящий Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ слСдуСт ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Если Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΎΠ²Π°Ρ€, Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Π΅ΡΡ‚ΡŒ Π·Π½Π°ΠΊ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,"Π‘ΠΊΠΈΠ΄ΠΊΠ° 50%"), ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ символ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ маска. Для поиска самого символа-замСнитСля Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символ.escape (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ слэш ΠΈΠ»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ символ зависит ΠΎΡ‚ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Π‘Π£Π‘Π”, Π½ΠΎ Π² 1Π‘ Ρ‡Π°Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ прямой слэш ΠΈΠ»ΠΈ ΡƒΠ΄Π²ΠΎΠ΅Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² стандартном запросС 1Π‘ для поиска самого символа % ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ конструкция %(20) Π² URL-ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ строки ΠΈΠ»ΠΈ просто экранированиС Ρ‡Π΅Ρ€Π΅Π· настройку соСдинСния, Π½ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π—ΠΠœΠ•ΠΠ˜Π’Π¬ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ ΠΈΠ»ΠΈ спСцифичСский синтаксис Π‘Π£Π‘Π”).

Нюанс Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ скобками

Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобок символы Ρ‚Π΅Ρ€ΡΡŽΡ‚ своС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ символа ^ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΈ дСфиса для Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ саму ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΡƒΡŽ скобку, Π΅Ρ‘ Π½ΡƒΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² Π½Π°Π±ΠΎΡ€ символов ΠΈΠ»ΠΈ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

ИспользованиС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ² Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках позволяСт сущСствСнно ΡΡƒΠ·ΠΈΡ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ поиска. НапримСр, маска Π’ΠΎΠ²Π°Ρ€[0-5] Π½Π°ΠΉΠ΄Π΅Ρ‚ строки"Π’ΠΎΠ²Π°Ρ€0","Π’ΠΎΠ²Π°Ρ€1"..."Π’ΠΎΠ²Π°Ρ€5", Π½ΠΎ пропустит"Π’ΠΎΠ²Π°Ρ€9". Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ сСриям ΠΈΠ»ΠΈ партиям, Π³Π΄Π΅ ΠΊΠΎΠ½Π΅Ρ† ΠΊΠΎΠ΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Врансляция запросов 1Π‘ Π² SQL ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с Π‘Π£Π‘Π”

Когда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΠΈΡˆΠ΅Ρ‚ запрос Π½Π° встроСнном языкС, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ транслируСт Π΅Π³ΠΎ Π² Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ систСмы управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (Π‘Π£Π‘Π”). ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠŸΠžΠ”ΠžΠ‘ΠΠž Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв транслируСтся Π² стандартный SQL-ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ LIKE. Однако ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π»ΠΈ Π±Π°Π·Π° Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ MS SQL Server, PostgreSQL ΠΈΠ»ΠΈ Oracle.

Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ 1Π‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ собствСнный Π΄Π²ΠΈΠΆΠΎΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ запросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ вСсти сСбя ΠΈΠ½Π°Ρ‡Π΅ ΠΏΡ€ΠΈ сортировкС ΠΈ сравнСнии строк с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ рСгистра. Π’ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрном Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ вся тяТСлая Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Ρƒ записСй лоТится Π½Π° ΠΏΠ»Π΅Ρ‡ΠΈ сСрвСра Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. Если запрос составлСн Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, маска начинаСтся с %), сСрвСр Π‘Π£Π‘Π” ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ сканированиС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Table Scan), игнорируя ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ индСксы.

Различия Π² настройках_collation (ΠΏΡ€Π°Π²ΠΈΠ»Π° сортировки) Ρ‚Π°ΠΊΠΆΠ΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… конфигурациях SQL-сСрвСра поиск Ρ‡Π΅Ρ€Π΅Π· LIKE ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ рСгистрозависим, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π² 1Π‘ ΠΎΠ½ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ рСгистронСзависим. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ автоматичСски подставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ прСобразования рСгистра (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, UPPER ΠΈΠ»ΠΈ LOWER) ΠΏΡ€ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ SQL-ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° процСссор.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ѐайловая Π±Π°Π·Π° 1Π‘ MS SQL Server / PostgreSQL
Π”Π²ΠΈΠΆΠΎΠΊ выполнСния ВстроСнный Π΄Π²ΠΈΠΆΠΎΠΊ 1Π‘ Π―Π΄Ρ€ΠΎ Π‘Π£Π‘Π”
Π Π΅Π³ΠΈΡΡ‚Ρ€ΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Зависит ΠΎΡ‚ настроСк ОБ/1Π‘ Зависит ΠΎΡ‚ Collation Π±Π°Π·Ρ‹
ИспользованиС индСксов ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ ПолноС (ΠΏΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ запросС)
ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° спСцсимволов Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ 1Π‘ Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ SQL (LIKE)

Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° критичСски Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ оптимизация запроса для Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ Π½Π΅ всСгда Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π² ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрном Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. ВСстированиС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ слСдуСт ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° срСдС, максимально ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠΉ ΠΊ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ.

πŸ“Š На ΠΊΠ°ΠΊΠΎΠΉ Π‘Π£Π‘Π” Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ваша основная Π±Π°Π·Π° 1Π‘?
Π€Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ (dbf/1cd)
MS SQL Server
PostgreSQL
Oracle
Другая

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΏΠΎΠ»Π½Ρ‹Π΅ сканирования

Главная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠŸΠžΠ”ΠžΠ‘ΠΠž β€” это риск возникновСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ сканирования Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π­Ρ‚ΠΎ происходит, ΠΊΠΎΠ³Π΄Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ запросов Π‘Π£Π‘Π” Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ индСкс для быстрого поиска. ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΌ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ здСсь являСтся ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ символа подстановки % Π² Π½Π°Ρ‡Π°Π»Π΅ маски. Если запрос выглядит ΠΊΠ°ΠΊ Π“Π”Π• НаимСнованиС ΠŸΠžΠ”ΠžΠ‘ΠΠž"%ИскомоС", сСрвСру приходится ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ запись Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ условиС.

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π±Π°Π·Π°Ρ…, содСрТащих ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ‚Π°ΠΊΠΎΠΉ запрос ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ ΠΈ Π΄Π°ΠΆΠ΅ часы, блокируя рСсурсы сСрвСра для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π˜Π½Π΄Π΅ΠΊΡΡ‹, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, упорядочСны ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Когда поиск начинаСтся с нСизвСстной ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΡƒΠ·ΠΈΡ‚ΡŒ ΠΊΡ€ΡƒΠ³ поиска, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ искомоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² любой части Π΄Π΅Ρ€Π΅Π²Π° индСкса.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого, ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ маски Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Π»ΠΎ строки Π±Ρ‹Π»ΠΎ фиксированным. Запрос ΠŸΠžΠ”ΠžΠ‘ΠΠž"ИскомоС%" Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° порядки быстрСС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ позволяСт Π‘Π£Π‘Π” сразу ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ индСкса ΠΈ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ подходящиС записи. Если ΠΆΠ΅ поиск ΠΏΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΡŽ строки Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ΅Π½, рассмотритС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ использования ΠŸΠžΠ”ΠžΠ‘ΠΠž Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запроса Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС Ρ†ΠΈΠΊΠ»Π° с маской, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΏΠΎΠ»Π½ΠΎΠ΅ сканированиС, Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ зависанию систСмы.

Анализ ΠΏΠ»Π°Π½Π° выполнСния запроса (Execution Plan) Π² инструмСнтах администрирования Π‘Π£Π‘Π” (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, SQL Server Management Studio) позволяСт наглядно ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π»ΠΈ индСкс (Index Seek) ΠΈΠ»ΠΈ происходит ΠΏΠΎΠ»Π½ΠΎΠ΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ (Table Scan). Π­Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг Π² диагностикС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ полнотСкстового поиска

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

ИспользованиС полнотСкстового поиска позволяСт молниСносно Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎ слоТным маскам ΠΈ Π΄Π°ΠΆΠ΅ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΌΠΎΡ€Ρ„ΠΎΠ»ΠΎΠ³ΠΈΠΈ (склонСния, спряТСния), Ρ‡Ρ‚ΠΎ нСдоступно для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠŸΠžΠ”ΠžΠ‘ΠΠž. Π’ конфигурациях 1Π‘ часто Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ рСгистр полнотСкстового поиска Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ· основных Ρ‚Π°Π±Π»ΠΈΡ†. Запрос ΠΊ Ρ‚Π°ΠΊΠΎΠΌΡƒ рСгистру выполняСтся Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ быстрСС.

  • πŸš€ Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ: Поиск ΠΏΠΎ ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ индСксу происходит Π·Π° Π΄ΠΎΠ»ΠΈ сСкунды Π΄Π°ΠΆΠ΅ Π² Ρ‚Π΅Ρ€Π°Π±Π°ΠΉΡ‚Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ….
  • 🧠 Π˜Π½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ поиска с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ стоп-слов ΠΈ Ρ„ΠΎΡ€ΠΌ слов (Ссли поддСрТиваСтся настройками).
  • βš™οΈ Настройка: Π’Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ индСксации Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ обслуТивания индСксов (Ρ€Π΅Π±ΠΈΠ»Π΄).

Однако Ρƒ этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π΅ΡΡ‚ΡŒ ΠΈ нСдостатки. Π”Π°Π½Π½Ρ‹Π΅ Π² полнотСкстовом индСксС ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ совсСм Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ссли ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ обновлСния рСгистра Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ, Π° Π½Π΅ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° полнотСкстового поиска Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΉ ΠΈΠ»ΠΈ настроСк Π½Π° сторонС сСрвСра Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ….

πŸ’‘

Если поиск ΠΏΠΎ маскС с Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌ"%" становится ΡƒΠ·ΠΊΠΈΠΌ мСстом систСмы, СдинствСнно Π²Π΅Ρ€Π½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ architectural уровня являСтся Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ полнотСкстового поиска ΠΈΠ»ΠΈ вынос поисковых ΠΏΠΎΠ»Π΅ΠΉ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ рСгистры.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…

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

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠ΅ΠΌ β€” использованиС вычисляСмых ΠΏΠΎΠ»Π΅ΠΉ ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ². НапримСр, Ссли часто трСбуСтся ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ ΠΏΠΎ Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚"ΠΡ€Ρ‚ΠΈΠΊΡƒΠ»ΠžΡ‡ΠΈΡΡ‚ΠΊΠ°", Π³Π΄Π΅ хранится Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ» Π±Π΅Π· спСцсимволов. Поиск ΠΏΠΎ Ρ‚Π°ΠΊΠΎΠΌΡƒ ΠΎΡ‡ΠΈΡ‰Π΅Π½Π½ΠΎΠΌΡƒ полю с фиксированным Π½Π°Ρ‡Π°Π»ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ индСкс ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ.

Π’Π°ΠΊΠΆΠ΅ стоит Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† для ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ. Если Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° ΠΎΠ³Ρ€ΠΎΠΌΠ½Π°, ΠΌΠΎΠΆΠ½ΠΎ сначала ΠΎΡ‚ΠΎΠ±Ρ€Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ссылки (ΠΊΠ»ΡŽΡ‡ΠΈ) Π½ΡƒΠΆΠ½Ρ‹Ρ… записСй ΠΏΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠΌΡƒ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ Π² Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, Π° Π·Π°Ρ‚Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ соСдинСнию с этой Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ. Π­Ρ‚ΠΎ сниТаСт Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° основныС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΈ возмоТности ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ запросов ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ с Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ Π½ΠΎΠ²Ρ‹Ρ… вСрсий ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅. ВсСгда провСряйтС Ρ€Π΅Π»ΠΈΠ·-Π½ΠΎΡ‚Ρ‹ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅, Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ Π΄Π²ΠΈΠΆΠΊΠ° запросов.

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях цСлСсообразнСС ΠΏΠ΅Ρ€Π΅Π»ΠΎΠΆΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ слоТной Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π½Π° сторону ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (Π² Ρ„ΠΎΡ€ΠΌΡƒ), Ссли объСм ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅Π²Π΅Π»ΠΈΠΊ. Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Π² памяти клиСнтского прилоТСния Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ Π€ΠΈΠ»ΡŒΡ‚Ρ€ Ρƒ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ быстрСС, Ρ‡Π΅ΠΌ слоТный запрос ΠΊ сСрвСру, Ссли сСтСвая Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Π΅Π»ΠΈΠΊΠ°, Π° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ.

β˜‘οΈ Π§Π΅ΠΊ-лист ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ запроса с ΠŸΠžΠ”ΠžΠ‘ΠΠž

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

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

Π’ Ρ‡Π΅ΠΌ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠŸΠžΠ”ΠžΠ‘ΠΠž ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΠΠ™Π’Π˜?

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠŸΠžΠ”ΠžΠ‘ΠΠž ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ нСпосрСдствСнно Π² тСкстС запроса ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ транслируСтся Π² SQL, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ индСксы (ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… условиях). Ѐункция ΠΠΠ™Π’Π˜ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΡƒΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² памяти ΠΈΠ»ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ вычислСния для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки, Ρ‡Ρ‚ΠΎ часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Ρƒ записСй ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ индСксов Π²Π½ΡƒΡ‚Ρ€ΠΈ запроса.

Как Π½Π°ΠΉΡ‚ΠΈ строку, которая содСрТит символ подчСркивания"_"?

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ символ _ являСтся спСцсимволом (замСняСт ΠΎΠ΄ΠΈΠ½ Π·Π½Π°ΠΊ), для поиска самого символа подчСркивания Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’ зависимости ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π‘Π£Π‘Π” ΠΈ настроСк 1Π‘, это ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· символ \ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠŸΠžΠ”ΠžΠ‘ΠΠž"%\_%" с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ символа экранирования) ΠΈΠ»ΠΈ ΠΏΡƒΡ‚Π΅ΠΌ поиска ASCII-ΠΊΠΎΠ΄Π°, Π½ΠΎ Ρ‡Π°Ρ‰Π΅ всСго Π² 1Π‘ достаточно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ экранирования, ΠΏΡ€ΠΈΠ½ΡΡ‚ΡƒΡŽ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ запрос с ΠŸΠžΠ”ΠžΠ‘ΠΠž"%" Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π΄Π°ΠΆΠ΅ Π½Π° малСнькой Π±Π°Π·Π΅?

Маска, состоящая Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· % ΠΈΠ»ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π°ΡΡΡ с Π½Π΅Π³ΠΎ, Π²Ρ‹Π½ΡƒΠΆΠ΄Π°Π΅Ρ‚ Π‘Π£Π‘Π” ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ запись Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅. На малСнькой Π±Π°Π·Π΅ это Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ, Π½ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ выполнСния остаСтся нСэффСктивным (Table Scan). ΠŸΡ€ΠΈ ростС Π΄Π°Π½Π½Ρ‹Ρ… врСмя выполнСния Π±ΡƒΠ΄Π΅Ρ‚ расти Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ ΠΈΠ»ΠΈ Ρ…ΡƒΠΆΠ΅, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ поиск ΠΏΠΎ индСксу растСт логарифмичСски.

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠŸΠžΠ”ΠžΠ‘ΠΠž для ΠΏΠΎΠ»Π΅ΠΉ Ρ‚ΠΈΠΏΠ° Число ΠΈΠ»ΠΈ Π”Π°Ρ‚Π°?

НСт, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠŸΠžΠ”ΠžΠ‘ΠΠž ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ для строковых Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊ числовым полям ΠΈΠ»ΠΈ Π΄Π°Ρ‚Π°ΠΌ Π±Π΅Π· явного привСдСния Ρ‚ΠΈΠΏΠ° ΠΊ строкС (Ρ‡Π΅Ρ€Π΅Π· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ БВРОКА) Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ. Однако ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Π² условии запроса часто Π»ΠΎΠΌΠ°Π΅Ρ‚ использованиС индСксов, поэтому Π»ΡƒΡ‡ΡˆΠ΅ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ числа ΠΈ Π΄Π°Ρ‚Ρ‹ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния (>, <, =).

Как ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚, Ссли ΠΎΠ½ встрСчаСтся Π² тСкстС?

Для поиска символа ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π° ΠΊΠ°ΠΊ части тСкста, Π° Π½Π΅ ΠΊΠ°ΠΊ маски, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ экранированиС. Π’ запросах 1Π‘ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ конструкция, зависящая ΠΎΡ‚ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°, Π½ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ способом являСтся поиск Ρ‡Π΅Ρ€Π΅Π· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΠΠ™Π’Π˜ Π²Π½ΡƒΡ‚Ρ€ΠΈ запроса (с ΠΏΠΎΡ‚Π΅Ρ€Π΅ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ) ΠΈΠ»ΠΈ использованиС спСцифичСского синтаксиса Π‘Π£Π‘Π”, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв 1Π‘ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ слэш \% Π²Π½ΡƒΡ‚Ρ€ΠΈ строки запроса.