-
Notifications
You must be signed in to change notification settings - Fork 67
сделать DROP TABLE при удалении всех строк реальной таблицы #8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Это есть в планах, но придется подождать. |
Не лучше ли сделать отдельную функцию для этого? Которая может удалять таблицы по диапазону. |
Такая уже есть: select drop_range_partition(partition)
from pathman_partition_list
where parent = 'test'::regclass and range_min::int < '100'; Здесь речь идет об оптимизации, которая при этом не совпадает по уровню блокировок с обычным удалением, и при высокой конкурентности может и не работать. |
Кажется очень неправильным делать неявный DROP TABLE если запрос при этом DELETE FROM. Опять же никто не гарантирует что паралельно не попытаются вставить строки в удаляемые таблицы. |
@funbringer я думаю можно закрыть этот issue, раз она решается функцией и это будет правильным способом. |
Пожалуй. Я думаю, было бы хорошо добавить небольшое пояснение. Мне кажется, что идея не выгорит, и тому есть несколько причин:
|
#5:
Если это возможно, то сделать нано-оптимизацию для следующего кейса
Если сделали
delete from megatable where column_for_range_split between xxx and yyy
(или аналогичный) И диапазон полностью покрывает реальную таблицу, то делатьdrop real_table
.Если же условия удаления более сложные (даже приводящие к полному удалению записей из реальной таблицы) то указанную мной оптимизацию не включать.
Реальный юзекейс - удаление старых записей из статистики. удалению будет именно такое "Удалить все записи старее такой-то даты". Ну и разделение, естественно, под столбцу с таймстампом.
The text was updated successfully, but these errors were encountered: