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

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

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

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ очистки ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ

Π‘Π°ΠΌΡ‹ΠΉ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΉ ΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ способ удалСния всСх строк ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части β€” это Π²Ρ‹Π·ΠΎΠ² встроСнного ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ(). Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ удаляСт всС элСмСнты ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, освобоТдая Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡƒΡŽ ΠΈΠΌΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ сбрасывая счСтчик строк Π² ноль. Он являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ Π² 99% случаСв использования.

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

Рассмотрим ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ дСмонстрируСт синтаксис обращСния ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ:

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠžΠ±ΡŠΠ΅ΠΊΡ‚.Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ.ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ();

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

πŸ’‘

ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ(), Ссли ваша Ρ†Π΅Π»ΡŒ β€” ΠΏΠΎΠ»Π½ΠΎΠ΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ всСх строк. Π­Ρ‚ΠΎ стандарт индустрии 1Π‘, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ строк Ρ‡Π΅Ρ€Π΅Π· Ρ†ΠΈΠΊΠ»: ΠžΠΏΠ°ΡΠ½ΠΎΡΡ‚ΠΈ ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

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

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

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ†ΠΈΠΊΠ» ΠΏΠΎ индСксам ломаСтся?

Когда Π²Ρ‹ удаляСтС строку с индСксом 1, строка с индСксом 2 становится строкой с индСксом 1. Π¦ΠΈΠΊΠ» ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ индСксу (2), пропуская Π½ΠΎΠ²ΡƒΡŽ строку Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ 1. Π’ ΠΈΡ‚ΠΎΠ³Π΅ удаляСтся каТдая вторая строка.

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

Для Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ = Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() - 1 По 0 Π¦ΠΈΠΊΠ»

Π’Π°Π±Π»ΠΈΡ‡Π½Π°ΡΠ§Π°ΡΡ‚ΡŒ.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ);

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

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

Выборочная очистка ΠΏΠΎ условиям ΠΎΡ‚Π±ΠΎΡ€Π°

Часто Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ трСбуСтся Π½Π΅ полная очистка, Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ строк с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ характСристиками. НапримСр, Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ всС ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ количСством ΠΈΠ»ΠΈ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ ΠΈΠ· ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ. Для Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡ использованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ() Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ удаляСт всё Π±Π΅Π· Ρ€Π°Π·Π±ΠΎΡ€Π°.

Π—Π΄Π΅ΡΡŒ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ комбинация Ρ†ΠΈΠΊΠ»Π° ΠΈ условного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π° ΠΈ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ.

Рассмотрим Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ удалСния строк, Π³Π΄Π΅ количСство мСньшС Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹:

  • πŸ” Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ†ΠΈΠΊΠ» с ΠΊΠΎΠ½Ρ†Π° ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π°.
  • βš–οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π° ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строкС.
  • πŸ—‘οΈ Если условиС истинно, Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π£Π΄Π°Π»ΠΈΡ‚ΡŒ() с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ индСксом.
  • πŸ”„ ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π°.

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

πŸ’‘

ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎΠΌ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ†ΠΈΠΊΠ» "По Π£Π±Ρ‹Π²Π°Π½ΠΈΡŽ ИндСксов", Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ пропуска строк ΠΈΠ·-Π·Π° сдвига ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с управляСмыми Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ

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

Если Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈΠ· модуля Ρ„ΠΎΡ€ΠΌΡ‹, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ сСрвСрныС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹. ΠŸΡ€ΡΠΌΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ошибкам ΠΈΠ»ΠΈ просто Π½Π΅ выполняСтся, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹Π΅ Π΅Ρ‰Π΅ Π½Π΅ зафиксированы Π² Π±Π°Π·Π΅.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ() Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ· клиСнтского модуля Ρ„ΠΎΡ€ΠΌΡ‹ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ выполнСния. ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ сСрвСрныС Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹ для ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ рСкомСндуСтся ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ очистки Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ Π² ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ модуля Ρ„ΠΎΡ€ΠΌΡ‹. Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ транзакция Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ….

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

πŸ“Š Π“Π΄Π΅ Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго выполняСтС очистку Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… частСй?
Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°
Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ (сСрвСр)
Π’ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…
Π’ запросах

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ оптимизация ΠΊΠΎΠ΄Π°

Когда Ρ€Π΅Ρ‡ΡŒ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… с большим количСством строк (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ½Π²Π΅Π½Ρ‚Π°Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ вСдомости ΠΈΠ»ΠΈ Π°ΠΊΡ‚Ρ‹ свСрки), вопрос ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ встаСт особСнно остро. Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ очистки ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ сСкунды ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния.

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ() ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ядра ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π·Π° врСмя, ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ O(1) ΠΈΠ»ΠΈ O(n) с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹ΠΌΠΈ расходами. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя Ρ†ΠΈΠΊΠ» с ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ строкС ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ O(n^2), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ сдвига массива Π΄Π°Π½Π½Ρ‹Ρ… Π² памяти.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² прСдставлСно Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅:

ΠœΠ΅Ρ‚ΠΎΠ΄ Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ РСкомСндация Риск ошибок
ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ() Низкая Для ΠΏΠΎΠ»Π½ΠΎΠΉ очистки ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ
Π¦ΠΈΠΊΠ» "По Π£Π±Ρ‹Π²Π°Π½ΠΈΡŽ" БрСдняя Для Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎΠΉ очистки Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ
Π¦ΠΈΠΊΠ» "По Π’ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ" Высокая Π—Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Высокая Волько ΠΏΡ€ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Высокий

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠ΄Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Если Π²Ρ‹ ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ записью Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ это дСлаСтся Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ².

β˜‘οΈ Π§Π΅ΠΊ-лист ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ

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

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

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

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° частая ошибка связана с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π·Π°Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ связанныС Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ ΠΈΠ»ΠΈ ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹Π΅ суммы послС удалСния строк. Π₯отя ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ() удаляСт строки, ΠΎΠ½ Π½Π΅ всСгда автоматичСски пСрСсчитываСт Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ поля, Ссли Π»ΠΎΠ³ΠΈΠΊΠ° пСрСсчСта вынСсСна Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ПослС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ очистки Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ пСрСсчСта ΠΈΡ‚ΠΎΠ³ΠΎΠ² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Ссли ΠΎΠ½ΠΈ Π½Π΅ ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ автоматичСски. Π˜Π½Π°Ρ‡Π΅ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ суммы.

Π’Π°ΠΊΠΆΠ΅ стоит ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ транзакционности. Если очистка происходит Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ записи Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ этот ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ зависанию процСсса записи.

Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова сразу послС Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° очистки ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ свойство ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ(). Оно Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ноль. Если это Π½Π΅ Ρ‚Π°ΠΊ, Π·Π½Π°Ρ‡ΠΈΡ‚, Π»ΠΎΠ³ΠΈΠΊΠ° выполнСния ΠΊΠΎΠ΄Π° Π½Π°Ρ€ΡƒΡˆΠ΅Π½Π° ΠΈΠ»ΠΈ очистка Π½Π΅ Π±Ρ‹Π»Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π° ΠΊ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли очистка Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚?

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‚ΠΎΡ‚ Π»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π²Ρ‹ ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚Π΅. Часто Π±Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² Ρ„ΠΎΡ€ΠΌΠ΅ Π΅ΡΡ‚ΡŒ нСсколько Ρ‚Π°Π±Π»ΠΈΡ† с ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, ΠΈ ΠΊΠΎΠ΄ обращаСтся ΠΊ пустой ΠΊΠΎΠΏΠΈΠΈ, Π° Π½Π΅ ΠΊ основному Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρƒ.

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

МоТно Π»ΠΈ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π² запросС?

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

Π§Ρ‚ΠΎ быстрСС: ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ() ΠΈΠ»ΠΈ созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°?

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ() Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ быстрСС. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ выдСлСния Π½ΠΎΠ²ΠΎΠΉ памяти ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ структуры, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ очистка просто сбрасываСт ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅.

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ, Ссли ΠΎΠ½Π° пустая?

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

ВлияСт Π»ΠΈ очистка Π½Π° ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°?

Π”Π°, Ссли Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΡƒΠΆΠ΅ Π±Ρ‹Π» записан Ρ€Π°Π½Π΅Π΅, Ρ‚ΠΎ очистка строк ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ запись создадут Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π’ ΠΆΡƒΡ€Π½Π°Π»Π΅ рСгистрации ΠΈΠ»ΠΈ истории ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ зафиксирован Ρ„Π°ΠΊΡ‚ удалСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части.

МоТно Π»ΠΈ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ очистку Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части?

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