就目前的情况而言,此问题不适合我们的问答格式。我们希望答案能得到事实、参考资料或专业知识的支持,但此问题可能会引发辩论、争论、民意调查或广泛讨论。如果您认为此问题可以改进并可能重新讨论,请访问visit the help center以获取指导。
九年前就关门了。
有没有人可以区分什么是最好的使用SQLite或SQL Server?我使用XML文件作为数据存储添加,删除,更新..有人建议使用SQLite快速操作,但我不熟悉SQLite我知道SQL Server。
就目前的情况而言,此问题不适合我们的问答格式。我们希望答案能得到事实、参考资料或专业知识的支持,但此问题可能会引发辩论、争论、民意调查或广泛讨论。如果您认为此问题可以改进并可能重新讨论,请访问visit the help center以获取指导。
九年前就关门了。
有没有人可以区分什么是最好的使用SQLite或SQL Server?我使用XML文件作为数据存储添加,删除,更新..有人建议使用SQLite快速操作,但我不熟悉SQLite我知道SQL Server。
2条答案
按热度按时间xuo3flqw1#
SQLite是一个很棒的嵌入式数据库,可以和应用程序沿着部署,如果你编写的是一个客户可以安装的分布式应用程序,那么SQLite有一个很大的优势,那就是没有任何单独的安装程序或维护--它只是一个单独的dll,可以和应用程序的其余部分一起部署。
SQLite还在进程中运行,减少了数据库带来的大量开销--所有数据都在进程中缓存和查询。
SQLite与您的.NET应用程序的集成比SQL Server更好。您可以用任何.NET语言编写自定义函数,这些函数在SQLite引擎内部运行,但仍在您的应用程序的调用进程和空间内,因此可以调用您的应用程序来集成其他数据或在执行查询时执行操作。这种非常不寻常的功能使某些操作变得非常容易。
SQLite通常比SQL Server快得多。
但是,SQLite一次只支持一个编写器(表示执行单个事务)。SQLite在需要锁时锁定整个数据库(读或写),并且一次只有一个写入器可以持有写锁。由于其速度,这对于小到中等大小的应用程序实际上不是问题,但如果写入量更大(每秒数百个),那么它可能会成为瓶颈。有许多可能的解决方案,如将数据库数据分离到不同的数据库中,将写入缓存到队列中并异步写入。然而,如果您的应用程序可能会遇到这些使用需求,并且还没有针对SQLite编写过,那么最好使用具有更细粒度锁定的SQL Server。
**更新:**SQLite 3.7.0添加了一个新的日志模式,称为“提前写锁定",支持在写的同时并发阅读。在我们内部的多进程争用测试中,对于完全相同的争用读/写序列,时间从110秒减少到8秒。
vaqhlq812#
两者完全不同,一个是为企业级数据管理而构建的,另一个是为移动的设备(嵌入式或无服务器环境)而构建的。虽然SQLite部署可以容纳数百GB的数据,但这不是它的构建目的。
更新:以反映更新的问题:请阅读SQLite上的this blog post。我希望这会对您有所帮助,并让您通过重定向到资源来访问它,以便从. net以编程方式访问SQLite。