Таблица Postgresql, можем ли мы пропустить управление идентификаторами транзакций

#postgresql

Вопрос:

У меня есть большая (но простая) таблица с миллиардами строк. Есть 3 столбца X (int), Y (int), Z(int). Каждая строка имеет уникальную пару (X, Y). Данные постоянно меняются (особенно значение Z).

Большинство действий, представленных на столе, являются

  1. запрос (при заданном значении X, значении Y найдите среднее значение Z совпадающих строк).
  2. значение обновления Z задано значением X, значением Y

иногда он выполняет вставку и удаление (очень редко).

В настоящее время автоматический вакуум не в состоянии поддерживать его, и на это уходят дни, и часто его приходилось убивать. Я знаю, что автоматическая очистка важна, так как она должна 1) обрабатывать обертку идентификатора транзакции, 2) перерабатывать мертвые кортежи, но мы хотели бы пропустить все данные идентификатора транзакции и просто обновить исходную соответствующую строку на основе X, Y с более новым значением Z (нет необходимости удалять строку и создавать новую строку).

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

Интересно, можно ли отключить идентификатор транзакции, и, следовательно, обновление будет на месте (вместо удаления вставки)?

Заранее спасибо.

Комментарии:

1. Является ли Z частью индекса? Если это не вы, то эти обновления должны рассматриваться как ГОРЯЧИЕ обновления

2. Столбец Z не является индексом. Спасибо за упоминание о ГОРЯЧЕМ обновлении, проверю его.

3. cybertec-postgresql.com/en/…