SQLite和DISQLite之间有什么区别?为什么我要选择一个而不是另一个?
我的上下文是,我正在处理一个大型数据库(可能高达10 GB),其关键部分在一个非常简单的表中,表中包含一个索引字段和一个文本字段,大小最大可达几KB。我的开发工具是Delphi2009,数据库将嵌入到我的.exe中。
我的主要标准是速度。这将适用于在典型的Windows计算机上运行的软件应用程序,比如Windows 7和4 GB的RAM。
如果你想推荐另一个数据库工具,请告诉我为什么它比这两个工具更适合我的应用程序,特别是在速度方面。
发布于 2010-01-11 16:43:46
另外,DISQLite使用Sqlite的obj文件,用Delphi语言编译,产生的功能比原来的多,而且使用相同的sqlite DB格式,所以你可以用其他支持Sqlite驱动的语言来读取DISQLite数据库文件。
此外,使用DISQLite还有一个特性,您不必分发Sqlite DLL。
DISQLite支持高达2TB的数据库大小,因此它可以毫无问题地处理您的需求。
我考虑的另一个选择是FireBird嵌入式版本,如果你想扩展它,你可以毫不费力地切换到完整的FireBird服务器。
但我认为Sqlite和DISQLite都会比火鸟表现得更好。
我使用Audcom Sqlite components来访问Sqlite数据库,你可以用Sqlite objs文件编译它,这样你就不需要部署sqlite dll了。
发布于 2010-01-11 16:40:46
我可以建议您编写自己的实现。如果您不需要复杂的SQL查询,那么最简单(也可能是最快)的实现是基于文件的存储。
发布于 2010-01-11 17:04:06
DISQLLite有两个版本,免费的一个仅限于个人和非商业用途。所以这可能是一个决定性的因素,因为SQLite是没有免费/付费版本的免费开源实现。
这两个数据库都将能够处理以GB为单位的数据。SQLite在预编译的二进制文件中可用,即动态链接库,可以在应用程序中分发。但是,有了源代码,您也可以在应用程序中编译它并使用它,而不需要使用DLL。
使用DLL模块(有时)的好处是,当一些错误被解决时,您只需在客户端机器上替换DLL,而不是重新编译整个应用程序。
我觉得SQLite会更好的满足你的需求。数据库的速度并不完全取决于数据库的类型。硬盘访问速度、可用的处理能力、RAM等硬件也对加速数据库起着重要作用。
https://stackoverflow.com/questions/2040266
复制相似问题