УДАЛИТЬ - что практически означает, что ряды не исключаются из индекса - PullRequest
0 голосов
/ 04 июля 2019

У нас есть случай, в котором мы рассматриваем удаление отдельных точек из серии с DELETE FROM measurement WHERE Tag1='val1' .... and time='...'.

Мы видим, что это работает нормально, и точки больше не могут быть восстановлены после удаления.Однако нас беспокоит одна вещь, а именно примечание в документации "не исключает серию из индекса" .

Я понимаю, что если мы отбросимцелая серия с DELETE, тогда индекс не будет обновляться, и, тем не менее, в конце он просто займет некоторое место и никак не замедлит работу двигателя.Это правильно?

Однако я не уверен, как это понять в нашем самом случае, когда мы удаляем отдельные точки из разных серий.Есть ли скрытые подводные камни в этом подходе?Что в итоге произойдет с индексами?Будет ли двигатель замедлен в будущем?

Любые комментарии, предложения и советы очень ценятся!

Ответы [ 2 ]

1 голос
/ 09 июля 2019

Я полагаю, что он пометит элемент как удаленный без фактического удаления.Таким образом, он все еще использует диск, но не будет отображаться в результатах.Они называют это «надгробной плитой». Это отличается от удаления всей базы данных, rp или измерения, которое фактически удалит элемент.

Через некоторое время, когда InfluxDB запустит процесс фонового уплотнения, он очистит надгробную плиту.,Идеальный способ удаления данных - просто позволить политике хранения вступить в силу и удалить ее автоматически

0 голосов
/ 11 июля 2019

Вы можете просмотреть серию как своего рода подизмерение / подтаблицу. Если вы удалите точки данных из него, ряд останется, даже если вы удалили все точки данных. Если вы отбросите серию, она исчезнет вместе со всеми точками данных в ней.

Полагаю, если вы собираетесь добавить больше точек данных к этой серии позже (или вы удаляете только подмножество всех точек данных), вы бы выбрали DELETE, в противном случае DROP.

...