Ruby 需要多线程SQL处理的帮助吗
我正在处理一个SQL表,但它有20000多行,所以需要花费很长时间 所以我考虑使用一个线程管理器:发送10-20个线程来处理SQL结果,然后在它们完成后再发送10个线程。我在数据库中有一列指示表是否已被处理Ruby 需要多线程SQL处理的帮助吗,ruby,multithreading,Ruby,Multithreading,我正在处理一个SQL表,但它有20000多行,所以需要花费很长时间 所以我考虑使用一个线程管理器:发送10-20个线程来处理SQL结果,然后在它们完成后再发送10个线程。我在数据库中有一列指示表是否已被处理 我正在使用Sequel and no Rails。以下是如何在ruby中创建10个线程并等待它们完成: threads = [] 0..10.times do threads << Thread.new do processDb() end end thread
我正在使用Sequel and no Rails。以下是如何在ruby中创建10个线程并等待它们完成:
threads = []
0..10.times do
threads << Thread.new do
processDb()
end
end
threads.each { |t| t.join } # wait for thread to finish
threads=[]
0..10.5倍
线程听起来好像线程并没有什么帮助。你需要检查这么多条目的数据加载情况。没有办法创建10个使用相同方法的线程吗?例如:10个线程执行ProcessDB(id)
?创建线程不是问题,我是在评论策略。瓶颈是数据库服务器,而不是应用程序。我严重怀疑运行线程是否真的能加快速度。我会尽快开始实现。如果一切顺利,我将投票作为答案。你帮了我大忙,我非常感谢你抽出时间。