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

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

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ написанию ΠΊΠΎΠ΄Π°, Π²Π°ΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ сравнСния. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ считаСтся ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ: ΠΏΠΎΠ»Π½ΠΎΠ΅ нСсовпадСниС строки, Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΏΠΎΠ»Π΅ ΠΈΠ»ΠΈ ΠΆΠ΅ само отсутствиС записи Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅. Π’Ρ‹Π±ΠΎΡ€ стратСгии зависит ΠΎΡ‚ объСма Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Π‘Π°ΠΌΡ‹ΠΉ простой, Π½ΠΎ Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ эффСктивный ΠΌΠ΅Ρ‚ΠΎΠ΄ β€” это Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ…, Π³Π΄Π΅ количСство строк Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сотСн. ΠŸΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ врСмя выполнСния Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° растСт ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ нСдопустимо Π² ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹Ρ… конфигурациях.

Для Π±ΠΎΠ»Π΅Π΅ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ сортировку ΠΈΠ»ΠΈ созданиС Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ БоотвСтствиС ΠΈΠ»ΠΈ Массив ΠΊΠ»ΡŽΡ‡Π΅ΠΉ. Π­Ρ‚ΠΎ позволяСт ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° с ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΡ‡Π½ΠΎΠΉ Π΄ΠΎ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ зависимости. Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ сравнСниС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π² памяти, Ρ‚Π°ΠΊ ΠΈ с Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… для использования ΠΌΠΎΡ‰ΠΈ Π‘Π£Π‘Π”.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ сравнСнии строк ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Число(10) ΠΈ Π‘Ρ‚Ρ€ΠΎΠΊΠ°("10") ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ, Π² зависимости ΠΎΡ‚ настроСк сравнСния ΠΈ контСкста Π·Π°Π΄Π°Ρ‡ΠΈ.

πŸ’‘

ВсСгда провСряйтС, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Π»ΠΈ индСксы Ρƒ Ρ‚Π°Π±Π»ΠΈΡ† Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ массовых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ поиска. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ индСкса ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ быстрый поиск Π² Π΄ΠΎΠ»Π³ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€.

ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Найти для построчного Π°Π½Π°Π»ΠΈΠ·Π°

ΠœΠ΅Ρ‚ΠΎΠ΄ Найти ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ являСтся стандартным инструмСнтом для поиска ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ строки ΠΏΠΎ Π½Π°Π±ΠΎΡ€Ρƒ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятСн ΠΈ Π»Π΅Π³ΠΊΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ сравниваСмых структур. ΠŸΠ΅Ρ€Π΅Π΄ поиском Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ установлСн индСкс ΠΏΠΎ Ρ‚Π΅ΠΌ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‚ Π² сравнСнии.

Алгоритм дСйствия прост: Π²Ρ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚Π΅ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΏΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π½Π°ΠΉΡ‚ΠΈ Π°Π½Π°Π»ΠΎΠ³ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅. Если строка Π½Π°ΠΉΠ΄Π΅Π½Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ провСсти Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ входят Π² ΠΊΠ»ΡŽΡ‡ поиска. Π’ случаС отсутствия совпадСния строка помСчаСтся ΠΊΠ°ΠΊ новая ΠΈΠ»ΠΈ удалСнная, Π² зависимости ΠΎΡ‚ Π»ΠΎΠ³ΠΈΠΊΠΈ вашСй Π·Π°Π΄Π°Ρ‡ΠΈ.

Если Π² вашСй Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Π΄ΡƒΠ±Π»ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ, этот ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°Ρ‚ΡŒ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π’ Ρ‚Π°ΠΊΠΈΡ… ситуациях Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄ сравнСниСм.

ИндСкс = Π’Π°Π±Π»ΠΈΡ†Π°2.Π˜Π½Π΄Π΅ΠΊΡΡ‹.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ();

ИндСкс.Колонки.Add("НомСнклатура");

ИндСкс.Колонки.Add("Бклад");

Для КаТдого Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π˜Π·Π’Π°Π±Π»ΠΈΡ†Ρ‹1 Из Π’Π°Π±Π»ΠΈΡ†Π°1 Π¦ΠΈΠΊΠ»

НайдСннаяБтрока = Π’Π°Π±Π»ΠΈΡ†Π°2.Найти(Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π˜Π·Π’Π°Π±Π»ΠΈΡ†Ρ‹1, ИндСкс.Колонки);

Если НайдСннаяБтрока = НСопрСдСлСно Π’ΠΎΠ³Π΄Π°

// ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ записи

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

β˜‘οΈ ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· Найти

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

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° БоотвСтствиС для ускорСния

Когда объСм Π΄Π°Π½Π½Ρ‹Ρ… возрастаСт, использованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Найти Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° становится ΡƒΠ·ΠΊΠΈΠΌ мСстом. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ БоотвСтствиС (Map) позволяСт ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ Π·Π° константноС врСмя. Π­Ρ‚ΠΎ ΠΊΠ°Ρ€Π΄ΠΈΠ½Π°Π»ΡŒΠ½ΠΎ мСняСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, дСлая Π΅Π³ΠΎ практичСски ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½Ρ‹ΠΌ Π΄Π°ΠΆΠ΅ для дСсятков тысяч строк.

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

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ особСнно эффСктивСн, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ просто Π½Π°ΠΉΡ‚ΠΈ строку, Π½ΠΎ ΠΈ быстро ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π΅Π΅ полям для Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ. Π’Ρ‹ ΠΈΠ·Π±Π΅Π³Π°Π΅Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ сканирования Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ρ‡Ρ‚ΠΎ являСтся Π³Π»Π°Π²Π½Ρ‹ΠΌ прСимущСством Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅Π΄ классичСским поиском.

ΠœΠ΅Ρ‚ΠΎΠ΄ Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ объСм ΠŸΠ°ΠΌΡΡ‚ΡŒ
Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ O(N*M) Π΄ΠΎ 500 строк Минимальная
Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Найти O(N*logM) Π΄ΠΎ 10 000 строк БрСдняя
БоотвСтствиС O(N+M) Π›ΡŽΠ±ΠΎΠΉ объСм Высокая
Π’Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ O(N+M) ΠžΡ‡Π΅Π½ΡŒ большой Зависит ΠΎΡ‚ Π‘Π£Π‘Π”

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ИспользованиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° БоотвСтствиС Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ большС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ всС ΠΊΠ»ΡŽΡ‡ΠΈ ΠΈ значСния хранятся Π² памяти процСсса ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈΠ»ΠΈ сСрвСра.

πŸ“Š Какой ΠΌΠ΅Ρ‚ΠΎΠ΄ сравнСния Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ всСго?
Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹
Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Найти
ΠžΠ±ΡŠΠ΅ΠΊΡ‚ БоотвСтствиС
Π’Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π‘ΠšΠ”

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ Π‘ΠšΠ”

Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈΠ»ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ слоТной Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ, ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ являСтся использованиС подсистСмы Π‘ΠšΠ” (БистСма Компоновки Π”Π°Π½Π½Ρ‹Ρ…) ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠ΅Ρ€Π΅ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° сСрвСр Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ эффСктивнСС для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΎΠ±Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ слуТСбного поля, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ источник Π΄Π°Π½Π½Ρ‹Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "Π’Π°Π±Π»ΠΈΡ†Π°1" ΠΈ "Π’Π°Π±Π»ΠΈΡ†Π°2"). ПослС этого формируСтся запрос с ΠΏΠΎΠ»Π½Ρ‹ΠΌ внСшним соСдинСниСм (FULL JOIN) ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ полям. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ‚Π°ΠΊΠΎΠ³ΠΎ соСдинСния Π±ΡƒΠ΄ΡƒΡ‚ строки, Π³Π΄Π΅ Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ источника, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ· ΠΎΠ±ΠΎΠΈΡ… с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌΠΈ расхоТдСниями Π² полях.

ИспользованиС Π•Π‘Π’Π¬ NULL Π² языкС запросов 1Π‘ позволяСт Π»Π΅Π³ΠΊΠΎ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ записи, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΈ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π­Ρ‚ΠΎ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт для Π°ΡƒΠ΄ΠΈΡ‚Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ формирования ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΎ расхоТдСниях Π±Π΅Π· написания Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° встроСнном языкС.

ВЫБРАВЬ

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠ’Π°Π±Π»ΠΈΡ†Π°1.НомСнклатура КАК НомСнклатура,

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠ’Π°Π±Π»ΠΈΡ†Π°1.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ КАК ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ1,

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠ’Π°Π±Π»ΠΈΡ†Π°2.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ КАК ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ2

ΠŸΠžΠ›ΠΠžΠ• ВНЕШНЕЕ Π‘ΠžΠ•Π”Π˜ΠΠ•ΠΠ˜Π• ВрСмСннаяВаблица1 КАК Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠ’Π°Π±Π»ΠΈΡ†Π°1

ΠŸΠžΠ›ΠΠžΠ• ВНЕШНЕЕ Π‘ΠžΠ•Π”Π˜ΠΠ•ΠΠ˜Π• ВрСмСннаяВаблица2 КАК Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠ’Π°Π±Π»ΠΈΡ†Π°2

ПО Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠ’Π°Π±Π»ΠΈΡ†Π°1.НомСнклатура = Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠ’Π°Π±Π»ΠΈΡ†Π°2.НомСнклатура

Π“Π”Π•

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠ’Π°Π±Π»ΠΈΡ†Π°1.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ <> Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠ’Π°Π±Π»ΠΈΡ†Π°2.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ

Π˜Π›Π˜ Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠ’Π°Π±Π»ΠΈΡ†Π°1.НомСнклатура Π•Π‘Π’Π¬ NULL

Π˜Π›Π˜ Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠ’Π°Π±Π»ΠΈΡ†Π°2.НомСнклатура Π•Π‘Π’Π¬ NULL

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с NULL Π² 1Π‘

Π’ языкС запросов 1Π‘ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL Π½Π΅ Ρ€Π°Π²Π½ΠΎ самому сСбС (NULL <> NULL). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° отсутствиС значСния всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ 'Π•Π‘Π’Π¬ NULL' ΠΈΠ»ΠΈ 'НЕ Π•Π‘Π’Π¬ NULL', Π° Π½Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ сравнСниС.

Π£Ρ‡Π΅Ρ‚ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ особСнностСй сравнСния

ΠŸΡ€ΠΈ сравнСнии Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°Ρ… Ρ‚Π°Π±Π»ΠΈΡ† Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ΄Π΅Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΈΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π°, ΠΈ сравнСниС числа 10 ΠΈ строки "10" Π²Π΅Ρ€Π½Π΅Ρ‚ лоТь. Π­Ρ‚ΠΎ часто становится ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ошибок, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹Π΅ приходят ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… источников ΠΈΠ»ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ динамичСски.

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

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

πŸ’‘

ВсСгда ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚Π΅ сравниваСмыС Π΄Π°Π½Π½Ρ‹Π΅ ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠΌΡƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ ΠΈ Ρ‚ΠΈΠΏΡƒ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сопоставлСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ошибки Π»ΠΎΠ³ΠΈΠΊΠΈ.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ…

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

Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ создания Π»ΠΈΡˆΠ½ΠΈΡ… ΠΊΠΎΠΏΠΈΠΉ Ρ‚Π°Π±Π»ΠΈΡ† Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² памяти. Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с исходными Π²Ρ‹Π±ΠΎΡ€ΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ…, Ссли Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π·Π°Π΄Π°Ρ‡ΠΈ это позволяСт. Π Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ большой Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° нСсколько ΠΌΠ΅Π»ΠΊΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² (Π±Π°Ρ‚Ρ‡Π΅ΠΉ) Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ зависания интСрфСйса ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² толстом ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅.

ΠŸΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнных инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡƒΠ·ΠΊΠΎΠ΅ мСсто. Часто ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° кроСтся Π½Π΅ Π² самом Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ сравнСния, Π° Π² Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ исходных Ρ‚Π°Π±Π»ΠΈΡ† Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ отсутствии Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… индСксов Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

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

МоТно Π»ΠΈ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ€Π°Π·Π½Ρ‹Ρ… структур?

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

Π§Ρ‚ΠΎ быстрСС: Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΈΠ»ΠΈ запросом?

Для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… (Π΄ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… тысяч строк) Ρ€Π°Π·Π½ΠΈΡ†Π° Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½Π°. Однако ΠΏΡ€ΠΈ ростС объСма Π΄Π°Π½Π½Ρ‹Ρ… запрос ΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ Π½Π° сторонС сСрвСра становится Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ быстрСС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ Π‘Π£Π‘Π” ΠΈ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

Как ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π΄Π²Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ отличия?

Π‘Π°ΠΌΡ‹ΠΉ эффСктивный способ β€” Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ внСшнСС соСдинСниС Π² запросС. Π’ условии Π“Π”Π• Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ строки, Π³Π΄Π΅ значСния Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°Ρ… Π½Π΅ Ρ€Π°Π²Π½Ρ‹, ΠΈΠ»ΠΈ Π³Π΄Π΅ ΠΎΠ΄Π½Π° ΠΈΠ· сторон соСдинСния пуста (Π•Π‘Π’Π¬ NULL).

ВлияСт Π»ΠΈ порядок ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ сравнСния?

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ Π² самой Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π΅ влияСт Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ поиска. ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ Π²Π°ΠΆΠ΅Π½ порядок ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ Π² индСксС. ΠŸΠ΅Ρ€Π²Π°Ρ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° индСкса Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠΉ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ‡Π°Ρ‰Π΅ всСго происходит поиск ΠΈΠ»ΠΈ соСдинСниС, для максимальной эффСктивности.