问题在于: 我有一个我在开发中使用的临时数据库转储,数据库大小约为2 Gb,这使得许多ActiveRecord命令(主要是'其中'命令)运行至少5分钟。
在开发过程中可以采取哪些措施加快这一进程?
一些选项是创建一个开发的部分数据库(没有调查过),缓存,由于某些原因没有工作或有其他选择。我甚至会考虑对ActiveRecord调用的某些部分进行硬编码,只是为了在开发模式下进行处理。
答案 0 :(得分:0)
根据您提供的信息,有几种方法可以实现此目的。
如评论中所述,您可以创建种子文件并构建一些要在开发中使用的记录。这是大多数开发数据库的常见做法(特别是对于多个开发人员)。 See the Rails guides about this
另一个想法是编写一个rake任务,隔离staging数据库中最依赖表中的一些相关行(比如users
)并从该记录中构建虚拟数据。这可能有助于你建立现实"数据无需从头开始。如果存在大量关联,那么这可能比它的价值更大。
宝石seed_dump可以为那个pourpouse派上用场。
请注意,如果该登台数据库有任何PII(个人身份信息),您可能希望对其进行模糊处理,这样您就不会在本地存储用户信息。