如何在 Ruby pg gem 中使用类 send_query
的公共实例方法?PG::Connection
它可以帮助加快这样的程序的执行时间吗?
a = [1,2,3,4,5,6,...,100000] # elements in no specific order
conn = PG.connect(OMITTED)
conn.transaction do |conn|
a.each do |i]
conn.exec("INSERT INTO numbers VALUES ($1)",[i])
end
end
假设:如果我不等待结果,那么我可以继续向 PostgreSQL 服务器发送查询并尽快完成。
实验:重写版本:
a = [1,2,3,4]
conn = PG.connect(OMITTED)
conn.setnonblocking(true)
conn.transaction do |conn|
a.each do |i]
conn.send_query("INSERT INTO numbers VALUES ($1)",[i])
end
end
结果:运行时间没有差异。
一些额外的问题:
- 我的假设正确吗?
- 这一定是线程的工作吗?
- 我应该以某种方式处理 exec 的输出吗?