【问题标题】:How do I improve performance of SQLite3 in Datamapper?如何在 Datamapper 中提高 SQLite3 的性能?
【发布时间】:2014-06-05 16:33:09
【问题描述】:

我正在使用 DataMapper 在 SQLite3 中工作。

我正在填充一个包含近 140 万条记录的表,这需要很长时间。我发现 SQLite 中的插入是inherently slow,可以通过以下方式改进:

  1. 设置pragma Synchronous = OFF
  2. 通过将它们嵌入BEGIN..COMMIT 块中进行批量插入。

有一个lot of ways 可以做到这一点。

我一直在尝试寻找对 DataMapper 执行相同操作的方法,但文档到目前为止还没有帮助。我搜索了互联网,并解释了在其他环境中执行相同操作的方法,但没有人在 Ruby 的上下文中谈论过 DataMapper。

到目前为止我的代码是:

 DataMapper.setup(:default, 'sqlite:///path/to/DataBase.db')

 //Definition of Model

 File.open(fileName, "r") do |infile| 
    while (line = infile.gets) 
              // Populate data in database here
            end
      end

【问题讨论】:

  • 如果您向我们展示您的尝试,这真的很有帮助。

标签: ruby database sqlite ruby-datamapper


【解决方案1】:

问题不在于代码,而在于 sqlite 本身。如果您使用 140 万条记录填充它,那么您将在生产数据库中使用它。

即使使用 datamapper,sqlite 对于大型数据库查询本身也很慢,因此建议使用 mysql 进行快速访问

http://datamapper.org/getting-started.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 2018-01-21
    • 1970-01-01
    • 2013-09-13
    • 2021-10-13
    相关资源
    最近更新 更多