我应该选择哪个数据库不要担心大小限制?

时间:2010-02-13 15:28:10

标签: delphi

我想制作相当简单的数据库,它应该存储视频文件和声音文件。我想使用MS Access数据库(mdb),但这仅限于 2 GB 。 我不想使用服务器 - 客户端解决方案,因为它应该是单个应用程序,只使用存储在本地硬盘上的本地数据库。这就是主意。

你可以给我一个建议吗?

感谢名单

9 个答案:

答案 0 :(得分:11)

我选择嵌入式Firebird。您可以拥有免维护的桌面应用程序,如果需要,您可以稍后将其扩展到完整的C / S系统。你也有足够的库(免费或不免费 - Zeos,UIB,IBObjects,FIBPlus)从Delphi中使用它。没有提到最新的Delphi有一个DBX驱动程序OOTB。

此外,在数据库blob中包含大量数据(如果设计正确)不会影响搜索速度。

HTH

答案 1 :(得分:6)

如果要存储视频/音频数据等二进制数据,则应考虑使用文件系统并将宽度,高度,长度,作者等元数据放入您选择的数据库中。我喜欢MySQL。

答案 2 :(得分:2)

FirebirdDelphi的最佳选择之一,并且存在一个嵌入式版本

关于Firebird和blob storage

的文章

答案 3 :(得分:1)

Sqlite怎么样?这是适合您的需求我敢肯定,而且,它是公共领域。还有针对不同语言的绑定。有关Sqlite的Delphi接口,请参阅here

在zebrabox的评论之后

编辑 - 您可以创建一个简单的表格来识别不同的资源和路径......就像这样

CREATE TABLE "BlobId" (
    "BLOB_TYPE" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
);
CREATE TABLE sqlite_sequence(name,seq);
CREATE TABLE "BlobInfo" (
    "BlobInfo_Id" INTEGER PRIMARY KEY NOT NULL,
    "BlobInfo_Date" TEXT NOT NULL,
    "BlobInfoPath" TEXT NOT NULL
);

BlobId表的值为1表示图像,2表示音频,3表示视频,它将逻辑链接到BlobInfo

BlobInfo
1, 2010-02-13 04:05:40  C:\Blobs\SomeImage1.jpg
1, 2010-02-13 04:05:40  C:\Blobs\SomeImage2.jpg
2, 2010-02-13 04:05:40  C:\Blobs\SomeSound.wav
3, 2010-02-13 04:05:40  C:\Blobs\SomeVide.mp3

通过使用Sqliteman(Sqlite Manager GUI前端来管理Sqlite数据库),可以使工作更轻松。您有责任确保路径足够灵活,可以与数据库一起移动。

希望这有帮助, 最好的祝福, 汤姆。

答案 4 :(得分:1)

如前所述,我还建议FIREBIRD。 Delphi为此提供本机支持,它需要最少的代码开销,易于安装,零维护,可移动(如果需要),超级功能集,最重要的是:即使是商业产品也完全免费。

比较一个玩具工具集(MySQL)和一个真正的Pro工具(Firebird)可能会考虑比较MySQL和Firebird。 - 我希望这不会发动战争......

答案 5 :(得分:0)

我使用Advantage Database Server

它有一个本地服务器选项,非常容易使用。 我的主表中有大约12000条记录,其中70000条链表各有一张图片和一个音频文件(完整的mp3歌曲),数据库中有大约800个视频剪辑。

一切都很好。

你应该进行测试。

最诚挚的问候。

答案 6 :(得分:0)

PostgreSQL未嵌入,但您可以在本地计算机上运行(在单独的进程中)。它可以将BLOB存储在“bytea”数据类型中。开源和免费。

PS我认为bytea字段的最大大小可能是4GB,因为有一个四字节长度字段,但我看不到postgres文档中明确说明的内容。

答案 7 :(得分:0)

我建议 DB2 。从版本9开始的DB2支持非常大的表。最大值是巨大的。 512000 PB ,半个zettabyte。

答案 8 :(得分:0)

我们使用devart pg组件的postgreSQL在中型数据库应用程序中取得了巨大成功。我们使用这种组合做了一些有限的基准测试,发现它使用ADO的速度是2-3倍。