我在远程主机中有一个很大的Microsoft SQL Database
,我使用ActiveRecord 5
和tiny_tds
与activerecord-sqlserver-adapter
连接。我需要对一个table
进行多次查询,以查找属于对象的条目。问题是有数千个查询需要很长时间才能在远程数据库上执行。
是否可以缓存整个table
,以便在本地缓存表中执行查询以使其更快?
编辑:此操作的目的是将旧系统中的数据同步到新系统。以下循环用于导入:
MsSqlDbEntity.where(deleted: nil).where.not(verified: nil).each do |entity|
entity_import(entity)
end
这些是使用的方法:
def entity_import(ms_sql_db_entity)
new_db_entity = NewDbEntity.new(
# Some params from ms_sql_db_entity
)
sub_entity_import(ms_sql_db_entity, new_db_entity) if new_db_entity.save
end
def sub_entity_import(ms_sql_db_entity, new_db_entity)
MsSqlDbSubEntity.where(ms_sql_db_entity_id: ms_sql_db_entity.id).each do |sub_entity|
new_db_sub_entity = NewDbSubEntity.create(
new_db_entity_id: new_db_entity.id,
# Some other params
)
end
end
entity
和sub_entity
有one-to-many
关系。