Π’ ΠΌΠΈΡ€Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ сущСствуСт нСсколько способов получСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Ρ‹. Одним ΠΈΠ· самых Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ…, Π½ΠΎ Π½Π΅ всСгда Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° понятных Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² являСтся Π²Ρ‹Π±ΠΎΡ€ΠΊΠ°. Π­Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ запроса ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ справочника, прСдоставляя доступ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ записи ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ. ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ°, критичСски Π²Π°ΠΆΠ½ΠΎ для написания эффСктивного ΠΊΠΎΠ΄Π°.

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

Π‘Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ

ВСхничСски Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° прСдставляСт собой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ интСрфСйс ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°. Когда Π²Ρ‹ создаСтС запрос ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ(), систСма Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ. Π’Π½ΡƒΡ‚Ρ€ΠΈ этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° содСрТится курсор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ строку Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ². ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ курсора происходит ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠΉ записи ΠΊ послСднСй.

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

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ(). Он Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π±ΡƒΠ»Π΅Π²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: Π˜ΡΡ‚ΠΈΠ½Π°, Ссли ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС, ΠΈ Π›ΠΎΠΆΡŒ, Ссли Π΄Π°Π½Π½Ρ‹Π΅ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈΡΡŒ. Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° доступ ΠΊ полям осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΡƒΡŽ Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ, ΠΎΠ±Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΏΠΎΠ»Π΅ΠΉ, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π² тСкстС запроса.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ чтСния. Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π±Π°Π·Π΅ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ. Для измСнСния записСй Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ().

πŸ’‘

ΠŸΡ€ΠΈ использовании Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ поля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. ИзлишниС поля ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвСром Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ сСрвСром ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ 1Π‘.

ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² получСния Π΄Π°Π½Π½Ρ‹Ρ…

Π’ арсСналС программиста 1Π‘ Π΅ΡΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ. Часто Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ сразу Π² Π²ΠΈΠ΄Π΅ Π’Π°Π±Π»ΠΈΡ†Ρ‹ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Массива. ПониманиС Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ этими ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°ΠΌΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. Π’Π°Π±Π»ΠΈΡ†Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ всС Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ сразу, Ρ‡Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для сортировки, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΈΠ»ΠΈ слоТной Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ рСсурсоСмким.

Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° ΠΆΠ΅ идСальна для Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ дСйствиС Π½Π°Π΄ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ записью (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, провСсти Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ остатки). ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ β€” Π² ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° записСй Ρ‚Π°Π±Π»ΠΈΡ†Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π·Π°ΠΉΠΌΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ объСм RAM, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² памяти Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ строку ΠΈ нСбольшой Π±ΡƒΡ„Π΅Ρ€ ΠΏΡ€Π΅Π΄Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

Π’Π°ΠΊΠΆΠ΅ стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ Π² скорости старта. Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ практичСски ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ послС ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ запроса Π‘Π£Π‘Π”. Π’Π°Π±Π»ΠΈΡ†Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΏΠΎΠ»Π½ΠΎΠ΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ структуры ΠΈ Π½Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ смоТСт ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ Ρ†ΠΈΠΊΠ»Ρƒ Для КаТдого.

Π₯арактСристика Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° Π’Π°Π±Π»ΠΈΡ†Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Массив
Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠŸΠΎΡΡ‚Ρ€ΠΎΡ‡Π½ΠΎ (лСнивая) Полная сразу Полная сразу
Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сортировки Волько Π² запросС ВстроСнными ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ВстроСнными ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ
ΠŸΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ RAM МинимальноС ВысокоС ВысокоС
Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Высокая Зависит ΠΎΡ‚ объСма Зависит ΠΎΡ‚ объСма
πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ для ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ…. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π’Π°Π±Π»ΠΈΡ†Ρƒ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ссли Π½ΡƒΠΆΠ½Π° слоТная манипуляция Π΄Π°Π½Π½Ρ‹ΠΌΠΈ (сортировка, поиск) ΡƒΠΆΠ΅ послС получСния ΠΈΠ· Π±Π°Π·Ρ‹.

Бинтаксис ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° записСй

БущСствуСт Π΄Π²Π° основных способа ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ Π² ΠΊΠΎΠ΄Π΅ Π½Π° языкС 1Π‘. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ, Π±ΠΎΠ»Π΅Π΅ классичСский ΠΈ Π³ΠΈΠ±ΠΊΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Пока. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ процСссом ΠΈ позволяСт Π»Π΅Π³ΠΊΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° ΠΈΠ»ΠΈ слоТныС условия Π²Ρ‹Ρ…ΠΎΠ΄Π°.

Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° = Запрос.Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ();

Пока Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ() Π¦ΠΈΠΊΠ»

// ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠΎΠ»Π΅ΠΉ

Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ = Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.НаимСнованиС;

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

Π’Ρ‚ΠΎΡ€ΠΎΠΉ способ β€” использованиС конструкции Для КаТдого. Он Π±ΠΎΠ»Π΅Π΅ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π΅Π½ ΠΈ Ρ‡ΠΈΡ‚Π°Π΅ΠΌ, Π½ΠΎ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ самоС. Однако стоит ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ использовании Для КаТдого пСрСмСнная Ρ†ΠΈΠΊΠ»Π° содСрТит всю строку Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

  • πŸ”„ ΠœΠ΅Ρ‚ΠΎΠ΄ Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ() ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΎΠ΄Π½Ρƒ запись Π²ΠΏΠ΅Ρ€Π΅Π΄ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ успСх ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.
  • πŸ“‚ Бвойство ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ нСдоступно для Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.
  • ⚑ ΠœΠ΅Ρ‚ΠΎΠ΄ Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ() позволяСт ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ссли ΠΏΠΎΠ·ΠΆΠ΅ потрСбуСтся манипуляция Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

Π’Π°ΠΆΠ½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ поля Π² запросС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ΄ Π±Ρ‹Π» Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ. Если Π² запросС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ БУММА(Π‘ΡƒΠΌΠΌΠ°), Π»ΡƒΡ‡ΡˆΠ΅ Π΄Π°Ρ‚ΡŒ Π΅ΠΌΡƒ псСвдоним КАК Π˜Ρ‚ΠΎΠ³ΠΎΠ²Π°ΡΠ‘ΡƒΠΌΠΌΠ°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² ΠΊΠΎΠ΄Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π˜Ρ‚ΠΎΠ³ΠΎΠ²Π°ΡΠ‘ΡƒΠΌΠΌΠ°, Π° Π½Π΅ ΠΊ бСзымянному полю.

πŸ“Š Какой способ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
Пока Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ()
Для КаТдого Π‘Ρ‚Ρ€ Из Π’Ρ‹Π±ΠΎΡ€ΠΊΠΈ
Π‘Ρ€Π°Π·Ρƒ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°ΡŽ Π² Π’Π°Π±Π»ΠΈΡ†Ρƒ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ рСгистры свСдСний

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π²Ρ‹Π±ΠΎΡ€ΠΊΠ°ΠΌΠΈ

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ зависит ΠΎΡ‚ качСства написанного запроса. Если запрос Π½Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½, Π΄Π°ΠΆΠ΅ самый быстрый ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° Π½Π΅ спасСт ΠΎΡ‚ Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΎΠ². ОсновноС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ: Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π‘Π£Π‘Π”, Π° Π½Π΅ Π² ΠΊΠΎΠ΄Π΅ 1Π‘. НС Π²Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ лишниС записи, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ‚ΠΎΠΌ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ Если Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π°.

Одной ΠΈΠ· частых ошибок являСтся влоТСнная Π²Ρ‹Π±ΠΎΡ€ΠΊΠ°. Когда Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ выполняСтся Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ запрос с Π½ΠΎΠ²ΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΎΠΉ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° N+1. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ росту количСства ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. ВсСгда ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΎΠ΄Π½ΠΎΠΌ запросС Ρ‡Π΅Ρ€Π΅Π· Π›Π•Π’ΠžΠ• Π‘ΠžΠ•Π”Π˜ΠΠ•ΠΠ˜Π•.

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

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ»Π°Π½ выполнСния запроса?

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

Π Π°Π±ΠΎΡ‚Π° с Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ°ΠΌΠΈ ΠΈ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠ΅ΠΉ

Частая Π·Π°Π΄Π°Ρ‡Π° Π² 1Π‘ β€” ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° иСрархичСских Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, справочников с Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ°ΠΏΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² с Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ частями. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° становится Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ. Π’Π½Π΅ΡˆΠ½ΡΡ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Π° внутрСнняя β€” строки Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠ΅ΠΉ справочников Π²Π°ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ Π² запросС. Π­Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΌ порядкС. Однако ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ ΠΎΠ±Ρ…ΠΎΠ΄Π΅ Ρ‚Π°ΠΊΠΎΠΉ структуры Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ Π½ΡƒΠΆΠ½ΠΎ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ влоТСнности, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ слуТСбноС ΠΏΠΎΠ»Π΅ Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ, Ссли ΠΎΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π² запрос.

Запрос.ВСкст = "ВЫБРАВЬ Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.НомСнклатура.Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ, Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.НомСнклатура.НаимСнованиС ΠŸΠžΠ Π―Π”ΠšOM Π˜Π•Π ΠΠ Π₯ИЯ";

Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° = Запрос.Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ();

Пока Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ() Π¦ΠΈΠΊΠ»

// ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΡƒΠ·Π»Π° Π΄Π΅Ρ€Π΅Π²Π°

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

НС стоит Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Если Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π½Π΅ просто Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Π° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ, Π² высоконагруТСнных систСмах Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ (deadlock) ΠΏΡ€ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

β˜‘οΈ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ²

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

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ способы ΠΈΡ… устранСния

Бамая распространСнная ошибка β€” ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… нСпосрСдствСнно Π² Ρ†ΠΈΠΊΠ»Π΅ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π±Π΅Π· получСния Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ссылки. Π”Π°Π½Π½Ρ‹Π΅ Π² Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ записи, Ссли ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² Π±Π°Π·Π΅. ВсСгда Π΄Π΅Π»Π°ΠΉΡ‚Π΅ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠžΠ±ΡŠΠ΅ΠΊΡ‚() ΠΏΠ΅Ρ€Π΅Π΄ записью ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Другая ошибка β€” ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ пустых Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ. Π₯отя Ρ†ΠΈΠΊΠ» Пока Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ() просто Π½Π΅ выполнится Π½ΠΈ Ρ€Π°Π·Ρƒ, Ссли Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅Ρ‚, Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ситуации. НапримСр, Π²Ρ‹Π²ΠΎΠ΄ сообщСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, Ссли Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° пуста послС выполнСния ΠΎΡ‚Π±ΠΎΡ€Π°.

  • ❌ ИспользованиС Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ наличия Π΄Π°Π½Π½Ρ‹Ρ… (это Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€).
  • ❌ Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запросов Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° Π±Π΅Π· нСобходимости (ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° N+1).
  • ❌ ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΏΡ€ΠΈ массовой записи ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΈΠ· Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ.

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими Π²Ρ‹Π±ΠΎΡ€ΠΊΠ°ΠΌΠΈ Π² Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… заданиях ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ прСрывания (монополия). Π”ΠΎΠ»Π³ΠΈΠΉ Π·Π°Ρ…Π²Π°Ρ‚ ΠΌΠΎΠ½ΠΎΠΏΠΎΠ»ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ систСмы 1Π‘.

πŸ’‘

Никогда Π½Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ "Π½Π° Π»Π΅Ρ‚Ρƒ" Π²Π½ΡƒΡ‚Ρ€ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ вСрсии ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π­Ρ‚ΠΎ главная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² записСй Π² 1Π‘.

МоТно Π»ΠΈ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ?

НСт, сама Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ сортировки. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ прСдусмотрСна Π² тСкстС запроса с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π£ΠŸΠžΠ Π―Π”ΠžΠ§Π˜Π’Π¬ ПО. Если Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ слСдуСт Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π² Π’Π°Π±Π»ΠΈΡ†Ρƒ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

Π§Ρ‚ΠΎ происходит с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΈ использовании Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ?

Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° потрСбляСт ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ памяти, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ…Ρ€Π°Π½ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ строку ΠΈ нСбольшой Π±ΡƒΡ„Π΅Ρ€. Однако Ссли Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° Π²Ρ‹ создаСтС тяТСлыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠ»ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚Π΅ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ Π² массив, ΠΏΠ°ΠΌΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ расти ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΠΎΠ±ΡŠΠ΅ΠΌΡƒ Π΄Π°Π½Π½Ρ‹Ρ….

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ, сколько записСй Π²Π΅Ρ€Π½ΡƒΠ»Π° Π²Ρ‹Π±ΠΎΡ€ΠΊΠ°?

Π£ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π½Π΅Ρ‚ свойства "ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ". Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ число записСй, Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ запрос с ΠšΠžΠ›Π˜Π§Π•Π‘Π’Π’Πž(*), Π»ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ всю Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ Π² Ρ†ΠΈΠΊΠ»Π΅, считая ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ нСэффСктивно.

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π’Ρ‹Π±ΠΎΡ€ΠΊΠΎΠΉ ΠΈ РСгистром Π‘Π²Π΅Π΄Π΅Π½ΠΈΠΉ?

Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° β€” это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² запроса. РСгистр Π‘Π²Π΅Π΄Π΅Π½ΠΈΠΉ β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, хранящий ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для чтСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· рСгистра свСдСний.