ruby - 将元素从 Ruby 哈希插入到 SQLite 3 的最快方法

标签 ruby hash sqlite insert

我有一个带变量的 Ruby 散列:

  • 一个二元字符串数组
  • 一个整数

我尝试了以下两种方法将哈希中的元素插入到 SQLite 3 数据库中:

myRubyHash.each do |k, v|
   x=[k[0],k[1],v] 
   db.execute "INSERT INTO MyTable VALUES ( ?, ?, ? )", x
end

还有,

myRubyHash.each do |x|
   db.execute "INSERT INTO MyTable VALUES ( ?, ?, ? )", x
end

第一个要快得多(但仍然很慢)。有没有更快的方法来解决这个问题?

如果有帮助,我的 SQLite 3 表是由以下人员创建的:

rows = db.execute <<-SQL
  CREATE TABLE Assoc_words_p (
    name1 varchar(30),
    name2 varchar(30),
    val int,
    PRIMARY KEY (name1,name2)
  );
SQL

谢谢

最佳答案

我发现 prepare 语句可以如下使用:

stmnt1 = db.prepare( "INSERT INTO Table(name1,name2,val) VALUES (?, ?, ?)" )
myRubyHash.each do |k, v|
    stmnt1.execute(k[0],k[1],v/2)
end

关于ruby - 将元素从 Ruby 哈希插入到 SQLite 3 的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8867590/

相关文章:

c++ - 对于英语单词来说,什么是好的哈希函数?

c - 使用 realloc 重新散列开放寻址哈希表

clojure - korma 的选择字段功能不拒绝列?

ruby-on-rails - Ruby - mach-o 文件,但是是一个不兼容的架构(have (x86_64), need (arm64e))运行 gem 时抛出错误

javascript - 找不到 JavaScript 运行时错误

java - 散列值和加盐值

java - 创建数据库时将数据添加到sqlite数据库

linux - 在 ubuntu 上安装 sqlite3 无需 sudo apt-get install

ruby-on-rails - 从多个 ActiveRecord 查询创建 Ruby 哈希的有效方法

ruby-on-rails - rufus-scheduler 因 rake 任务而失败(不知道如何构建任务)