Я создаю приложение командной строки, используя ActiveRecord 3.0 (без рельсов). Как очистить кеш запросов, поддерживаемый ActiveRecord?
Очистка кеша ActiveRecord
Ответ 1
В первом приближении:
ActiveRecord::Base.connection.query_cache.clear
Ответ 2
Посмотрите на метод clear_query_cache
в http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/QueryCache.html
Ответ 3
Часто, когда вы видите кэширование запросов к базе данных, ваш db выполняет кеширование, а не ActiveRecord, что означает, что вам нужно очистить кеш и буферы на уровне db, а не на уровне ActiveRecord.
Например, чтобы очистить кеш и буферы Postgres на Mac, вы должны сделать sudo purge
, что заставляет кеш диска очищаться и очищаться.
Чтобы очистить кэш и буферы Postgres в Linux, вы должны закрыть postgres, сбросить кеши и снова запустить postgres:
service postgresql stop
sync
echo 3 > /proc/sys/vm/drop_caches
service postgresql start
Дальнейшее чтение: