对于大型简单数据库,SQLite 和 DISQLite 有何比较?
-
19-09-2019 - |
解决方案
AFAIR,DISQLite使用Sqlite的obj文件,并用Delphi编译它们并产生比原始文件更多的功能,并且使用相同的sqlite DB格式,因此您可以通过支持Sqlite的其他语言读取DISQLite数据库文件司机。
DISQLite 的另一项功能是您无需分发 Sqlite DLL。
DISQLite 支持高达 2TB 的数据库大小,因此它可以毫无问题地满足您的需求。
我会考虑的另一个选择是 FireBird 嵌入式版本,如果您想进一步扩展它,您可以轻松更改为完整的 FireBird 服务器。
但我认为 Sqlite 和 DISQLite 的性能都会比 Firebird 更好。
我用 Audcom Sqlite 组件 访问 Sqlite 数据库,您可以使用 Sqlite objs 文件对其进行编译,这样您就不需要部署 sqlite dll。
其他提示
我可以建议您编写自己的实现。如果不需要复杂的 SQL 查询,最简单(也可能是最快)的实现是基于文件的存储。
DISQLLite 有两个版本,免费版本仅限个人和非商业用途。因此,这可能是决定因素之一,因为 SQLite 是免费的开源实现,没有免费/付费版本。
这两个数据库都能够处理 GB 级的数据。SQLite 以预编译的二进制形式提供,即DLL 可以随您的应用程序一起分发。但是,有了可用的源代码,您还可以在应用程序中对其进行编译并使用它,而无需 DLL。
使用 DLL 模块(有时)的优点是,当某些错误得到解决时,您只需在客户端计算机上替换 DLL,而不用重新编译整个应用程序。
我觉得 SQLite 将是满足您需求的更好选择。数据库的速度并不完全取决于数据库的类型。硬盘访问速度、可用处理能力、RAM 等硬件在加速数据库方面也发挥着重要作用。
请注意,DISQLLite 个人版本有一些限制,并且我认为当任何人都可以免费实现 SQLite 包装器时,专业版本的价格(149.99 欧元,无源)是不值得的。
我使用 DISQLite 个人版作为免费软件产品,并且必须在新版本发布中实施数据库更改。个人版本不支持“ALTER”,因此我不得不购买完整版本。所以我放弃了 DISQLite,只使用了一个好的 SQLite 包装器。仅当您准备支付完整版本时才选择 DISQLite。
SQLite4Delphi 可能是一个更好的选择,或者至少为您提供了一个更具成本效益的解决方案。
看看我们的 SynBigTable单元. 。将会是 比 SQLite 快得多, ,并且似乎完全符合您的目的。
如果您需要本机 SQLite 实现,请查看我们的 SQLite3框架: :它是免费且开源的,无需任何外部 dll。并且比封闭的 DiSQLite 有更多的功能(比如用于实现 SQL 函数或虚拟表的 Delphi 原生类)。
对于性能 POV,瓶颈不是您使用的包装器,而是磁盘访问以及您如何设置数据库。不要忘记使用 索引 尽快检索您的数据。那么,无论您使用什么包装器,即使 10 GB 的数据对于 SQLite 来说也不是问题。