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

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

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

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌ ΠΊΠΎΠ΄Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ структуру ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π’Π°Π±Π»ΠΈΡ†Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ прСдставляСт собой ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ строк, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТит Π½Π°Π±ΠΎΡ€ ΠΏΠΎΠ»Π΅ΠΉ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Для доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ индСксация ΠΈΠ»ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, встроСнныС Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ.

БущСствуСт нСсколько способов обращСния ΠΊ элСмСнтам ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Π’Ρ‹Π±ΠΎΡ€ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° зависит ΠΎΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ: Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ Π²Π°ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ строки Π² процСссС ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°, трСбуСтся Π»ΠΈ доступ ΠΊ индСксу Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки ΠΈΠ»ΠΈ Π²Π°ΠΆΠ½Π° максимальная ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ†ΠΈΠΊΠ»ΠΎΠΌ Пока с использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ() ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠΌ Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ.

Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ 8.3 ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ Π² зависимости ΠΎΡ‚ контСкста. ИспользованиС нСэффСктивных конструкций Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π°, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запросов Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π² Β«ΡƒΠ·ΠΊΠΎΠ΅ Π³ΠΎΡ€Π»Ρ‹ΡˆΠΊΠΎΒ» всСй систСмы.

πŸ’‘

ВсСгда ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π²Ρ‹Π½ΠΎΡΠΈΡ‚ΡŒ тяТСлыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запросов ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Ρ†ΠΈΠΊΠ»Π° ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° строк. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π² дСсятки Ρ€Π°Π·.

ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Ρ†ΠΈΠΊΠ» с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ()

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

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

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

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΠ‘Ρ‚Ρ€ΠΎΠΊ = Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ();

ИндСкс = 0;

Пока ИндСкс < ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΠ‘Ρ‚Ρ€ΠΎΠΊ Π¦ΠΈΠΊΠ»

Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’Π°Π±Π»ΠΈΡ†Ρ‹ = Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ(ИндСкс);

// ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…

ИндСкс = ИндСкс + 1;

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

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

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° классичСского Ρ†ΠΈΠΊΠ»Π°

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

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄: Ρ†ΠΈΠΊΠ» Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ

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

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

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

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’Π°Π±Π»ΠΈΡ†Ρ‹ Из Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π¦ΠΈΠΊΠ»

// ΠŸΡ€ΡΠΌΠ°Ρ Ρ€Π°Π±ΠΎΡ‚Π° со свойствами строки

Π‘ΡƒΠΌΠΌΠ° = Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’Π°Π±Π»ΠΈΡ†Ρ‹.Π‘ΡƒΠΌΠΌΠ° * Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’Π°Π±Π»ΠΈΡ†Ρ‹.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ;

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

Π‘Ρ‚ΠΎΠΈΡ‚ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‡Π΅Π½ΡŒ старых вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ Π² спСцифичСских контСкстах выполнСния Ρ†ΠΈΠΊΠ» Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠΎΠ³ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ классичСского Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°. Однако Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅Π»ΠΈΠ·Π°Ρ… 1Π‘ 8.3 эта Ρ€Π°Π·Π½ΠΈΡ†Π° Π½ΠΈΠ²Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½Π°, ΠΈ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ становится удобство Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

πŸ“Š Какой способ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Пока + ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ
Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ
Π§Π΅Ρ€Π΅Π· запрос
Зависит ΠΎΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ строк

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

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ удаляйтС строки ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Ρ†ΠΈΠΊΠ»Π΅ с Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‰ΠΈΠΌ индСксом (ΠΎΡ‚ 0 Π΄ΠΎ N). Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ пропуску элСмСнтов ΠΈ логичСским ошибкам Π² расчСтах.

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π² Ρ‚Π°ΠΊΠΎΠΉ ситуации являСтся ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС: ΠΎΡ‚ послСднСй строки ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΉ. ΠŸΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ элСмСнта Π² этом случаС ΡΠ΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ строки с мСньшими индСксами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ ΠΈΠ»ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡˆΠ°Π³Π°Ρ…, Ρ‡Ρ‚ΠΎ Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ.

Для ИндСкс = Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() - 1 По 0 Π¦ΠΈΠΊΠ»

Π‘Ρ‚Ρ€ΠΎΠΊΠ° = Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ(ИндСкс);

Если Π‘Ρ‚Ρ€ΠΎΠΊΠ°.Π‘ΡƒΠΌΠΌΠ° = 0 Π’ΠΎΠ³Π΄Π°

Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(ИндСкс);

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

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

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

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚?

ΠŸΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ строки с индСксом 5, строка с индСксом 6 становится строкой 5. Если ΠΌΡ‹ ΠΈΠ΄Π΅ΠΌ снизу Π²Π²Π΅Ρ€Ρ…, Ρ‚ΠΎ строка 6 ΡƒΠΆΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π°, Π° новая строка 5 Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ шагС (ΠΊΠΎΠ³Π΄Π° индСкс станСт 4, ΠΌΡ‹ обратимся ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ 5).

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²

Вопрос скорости выполнСния ΠΊΠΎΠ΄Π° всСгда Π°ΠΊΡ‚ΡƒΠ°Π»Π΅Π½ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими массивами Π΄Π°Π½Π½Ρ‹Ρ…. Π₯отя соврСмСнныС процСссоры ΠΈ оптимизация ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠΊΡ€ΠΎ-ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡Π°Ρ…, ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для написания высоконагруТСнных ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π°, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ особСнности Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΊ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Ρƒ. Π”Π°Π½Π½Ρ‹Π΅ основаны Π½Π° усрСднСнных тСстах для Ρ‚Π°Π±Π»ΠΈΡ† Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΎΡ‚ 10 000 Π΄ΠΎ 100 000 строк.

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° Π§ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ
Π¦ΠΈΠΊΠ» Пока + ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ() БрСдняя Высокая Низкая (Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ остороТности)
Π¦ΠΈΠΊΠ» Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Высокая Высокая Π—Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ строки
ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» Пока Низкая Высокая Высокая (бСзопасно для удалСния)
ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π½ΠΎΠ²ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Высокая БрСдняя (Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ памяти) Высокая

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

πŸ’‘

Для Π·Π°Π΄Π°Ρ‡ чтСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ "Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ". Для Π·Π°Π΄Π°Ρ‡ с ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ строк ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» "Пока".

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ

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

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ВсСгда провСряйтС Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅ΠΉ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ() ΠΈΠ»ΠΈ явноС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ².

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π²Π°ΠΆΠ½Ρ‹ΠΉ аспСкт β€” Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…. Если Ρ‚Π°Π±Π»ΠΈΡ†Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ сформирована Π½Π° основС Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… с Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ†ΠΈΠΊΠ» ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π΅ затягиваСтся Π½Π° слишком Π΄ΠΎΠ»Π³ΠΎΠ΅ врСмя, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ дольшС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ систСмы.

Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ слоТных Ρ†ΠΈΠΊΠ»ΠΎΠ² рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π° ΠΈ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ счСтчика ΠΈ содСрТимым Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки. ВстроСнныС срСдства ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ пошагово ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎ строкам ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ состояниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ "ΠΠ°Ρ‡Π°Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ" ΠΈ "Π—Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ" для Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π·Π°ΠΌΠ΅Ρ€Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния вашСго Ρ†ΠΈΠΊΠ»Π° Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ

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

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ запросы ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Π’Π°Π±Π»ΠΈΡ†Π° Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ вмСсто Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π² ΠΊΠΎΠ΄Π΅ 1Π‘, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ запрос с условиями Π“Π”Π•, Π‘Π“Π Π£ΠŸΠŸΠ˜Π ΠžΠ’ΠΠ’Π¬ ПО ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ, ΠΏΠ΅Ρ€Π΅Π»ΠΎΠΆΠΈΠ² Ρ‚ΡΠΆΠ΅Π»ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° Π΄Π²ΠΈΠΆΠΎΠΊ запросов.

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

Запрос.ВСкст = "ВЫБРАВЬ Π‘ΡƒΠΌΠΌΠ°, ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π˜Π— ВрСмСннаяВаблица Π“Π”Π• Π‘ΡƒΠΌΠΌΠ° > 100";

Запрос.Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€("ВрСмСннаяВаблица", Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ);

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

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ использовании запросов ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ»Π΅ΠΉ Π² запросС Ρ‚ΠΎΡ‡Π½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅, рСгистр символов Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ созданиС Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запросов Ρ‚ΠΎΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ свою Ρ†Π΅Π½Ρƒ. Для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов Π΄Π°Π½Π½Ρ‹Ρ… (Π΄ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… тысяч строк) overhead Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ запроса ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π²Ρ‹ΡΠΈΡ‚ΡŒ Π²Ρ‹Π³ΠΎΠ΄Ρƒ ΠΎΡ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. ВсСгда тСстируйтС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½Ρ‹Ρ…, Π±Π»ΠΈΠ·ΠΊΠΈΡ… ΠΊ Π±ΠΎΠ΅Π²Ρ‹ΠΌ.

Когда запрос быстрСС Ρ†ΠΈΠΊΠ»Π°?

Запрос становится эффСктивнСС Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°, ΠΊΠΎΠ³Π΄Π° количСство строк ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 5000-10000 ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° трСбуСтся слоТная Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈ агрСгация Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ΄Π΅.

МоТно Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ значСния Π² строкС ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π΅ Ρ†ΠΈΠΊΠ»ΠΎΠΌ "Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ"?

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

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ структуру Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ) Π²ΠΎ врСмя ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°?

Π˜Π·ΠΌΠ΅Π½ΡΡ‚ΡŒ структуру Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ) Π²ΠΎ врСмя ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° строк катСгоричСски Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС выполнСния. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ сформирована Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° Ρ†ΠΈΠΊΠ»Π° ΠΈ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄ΠΎ Π΅Π³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ.

Как быстрСС всСго ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ?

Π‘Π°ΠΌΡ‹ΠΉ быстрый способ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ β€” Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ(). НС слСдуСт ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ строки ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π² Ρ†ΠΈΠΊΠ»Π΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΈ создаст лишнюю Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° систСму.

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

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

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сортировку Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°?

НСт, сортировка Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (ΠΌΠ΅Ρ‚ΠΎΠ΄ Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ) Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° Ρ†ΠΈΠΊΠ»Π° ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π² процСссС ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΌΡƒ порядку ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ошибкам, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ индСксы строк измСнятся.