【发布时间】:2009-11-23 21:57:23
【问题描述】:
如果我在这样的 Ruby 应用程序中使用 Sequel:
DB = Sequel.sqlite('testdb.db')
它是否使数据库共享?我可以同时从不同的 ruby 应用程序访问同一个文件并让数据库执行锁定等操作吗?
我认为可能不会,我实际上必须运行一个单独的数据库实例。
【问题讨论】:
如果我在这样的 Ruby 应用程序中使用 Sequel:
DB = Sequel.sqlite('testdb.db')
它是否使数据库共享?我可以同时从不同的 ruby 应用程序访问同一个文件并让数据库执行锁定等操作吗?
我认为可能不会,我实际上必须运行一个单独的数据库实例。
【问题讨论】:
是的,如果您使用文件支持的数据库,您可以通过多个进程访问它。它们甚至不必是红宝石进程。请注意,在 SQLite 中,写入器会阻塞所有读取器,因此多进程或多线程的写入性能不是很好。
【讨论】:
这不取决于 Ruby 和 Sequel。这取决于sqlite。看看sqlite FAQ,看看它是否回答了你的问题。
【讨论】: