Вопрос по кешу postresql и скрипту на ruby

Есть такой скрипт на руби

def self.cached_count
    @cached_count ||= begin
      table = Arel::Table.new(:pg_class)
      query = table.project(table['reltuples']).where(table['relname'].eq('receipts')).to_sql
      result = connection.exec_query query
      result&.first&.[]('reltuples')&.to_i
    end
    cach_count = ReceiptsCashe.where('id > ?', self.last.id).count
    page = cach_count % self.per_page > 0 ? 1 : 0
    @cached_count += ( cach_count / self.per_page).to_i + page
    @cached_count
  end

в нем берется счетчик страниц для отображения данных в таблице с постраничным выводом в рельсах. Проблема в том, что кеш отстает от реальных данных. Размер таблицы около 500 млн записей. Я сделал дополнительную таблицу куда кладутся новые записи через after_create для модели. И из этих данных генерится финальный размер счетчика. Но проблема в том, что и этот подход плохо работает, всегда есть новые данные которые не попадают на страницу вывода. У меня такой вопрос, как можно быстро взять из большой таблицы последнюю запись, его айди или дату создания, чтобы количество страниц для таблицы всегда были актуальны.


Ответы (0 шт):