我正在寻找最终可能托管的家庭项目(ASP.NET MVC)的数据库。在Stack Overflow上阅读类似问题here之后,我决定选择MySQL。
然而,易于使用& SQLite的部署很诱人,我想在完全写完之前确认我的理由。
我的目标是维护用户状态消息(如Twitter)。这将主要意味着具有用户ID /状态消息对的单个表。读取/插入/删除状态消息的操作。无需修改。
阅读以下段落后,我决定SQLite不适合我。我有一个简单的数据库,但由于我的所有事务都与SAME表一起工作,我可能会遇到一些问题。
SQLite在整个数据库文件中使用读取器/写入器锁。这意味着如果任何进程正在从数据库的任何部分读取,则阻止所有其他进程编写数据库的任何其他部分。同样,如果任何一个进程正在写入数据库,则阻止所有其他进程读取数据库的任何其他部分。
我的理解天真吗? SQLite能为我工作吗? MySQL也提供了SQLite在使用ASP.NET MVC时不会提供的东西吗? VS的易于开发可能吗?
答案 0 :(得分:3)
如果你愿意等半个月,下一个SQLite版本打算支持write-ahead logging,这应该允许更多的写入并发。
答案 1 :(得分:1)
我甚至无法得到简单的并发SQLite声称支持工作 - 即使在几次询问SO之后。
修改强> 自从我写完以上内容后,我已经能够获得并发写入和读取以使用SQLite。看起来我没有正确处理NHibernate会话 - 在创建会话的所有代码周围使用块解决了问题。 的 /修改
但它可能适用于您的应用程序,尤其是user380361提到的预写日志记录。
占地面积小,单个文件安装,速度快,适用于NHibernate,免费,公共领域 - 几乎在所有方面都是非常好的产品!