使用 Sequel 从多个应用程序同时访问数据库
如果我在 Ruby 应用程序中使用 Sequel,如下所示:
DB = Sequel.sqlite('testdb.db')
它会使数据库共享吗?我可以同时从不同的 ruby 应用程序访问同一文件并让数据库执行锁定等操作吗?
我想可能不会,我实际上必须运行一个单独的数据库实例。
If I use Sequel in a Ruby app like this:
DB = Sequel.sqlite('testdb.db')
does it make the database shared? Can I acces this same file from a different ruby app AT THE SAME TIME and get the database to perform locking etc?
I'm thinking probably not and i'd have to actually have a separate instance of the database running.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的,如果您使用文件支持的数据库,则可以通过多个进程访问它。它们甚至不必是 ruby 进程。请注意,在 SQLite 中,写入器会阻塞所有读取器,因此多进程或多线程写入性能不是很好。
Yes, if you use a file backed database, you can access it by multiple processes. They don't even have to be ruby processes. Note that in SQLite, writers block all readers, so multi-process or multi-threaded write performance is not very good.
这与 Ruby 和 Sequel 无关。这取决于 sqlite。查看sqlite FAQ,看看它是否回答了您的问题。
This is not up to neither Ruby nor Sequel. It's up to sqlite. Take a look at sqlite FAQ, and see whether it answers your question.