Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database Firebird 2.1在某些DB'中存储大量行是否有效;什么桌子?_Database_Database Design_Firebird_Firebird2.1 - Fatal编程技术网

Database Firebird 2.1在某些DB'中存储大量行是否有效;什么桌子?

Database Firebird 2.1在某些DB'中存储大量行是否有效;什么桌子?,database,database-design,firebird,firebird2.1,Database,Database Design,Firebird,Firebird2.1,我的应用程序不断收到一个它需要存储的非常小的事件,我在想哪一个是处理它的最佳方式。此事件的表格如下所示: EVENT id timestamp some_data (integer) fk_to_some_holder_table 如果我继续将每个事件存储为一行,那么使用某种blob压缩/处理的实现会有一些缺点吗?还是我走得太远了 我用的是火鸟2.1。如果需要,我可以升级到Firebird 2.5 提前感谢。我相信您最好选择“传统的基于行的记录”: 你想查询记录,对吗?查询斑点是困难和缓慢的

我的应用程序不断收到一个它需要存储的非常小的事件,我在想哪一个是处理它的最佳方式。此事件的表格如下所示:

EVENT
id
timestamp
some_data (integer)
fk_to_some_holder_table
如果我继续将每个事件存储为一行,那么使用某种blob压缩/处理的实现会有一些缺点吗?还是我走得太远了

我用的是火鸟2.1。如果需要,我可以升级到Firebird 2.5


提前感谢。

我相信您最好选择“传统的基于行的记录”:

  • 你想查询记录,对吗?查询斑点是困难和缓慢的
  • 由于您的记录大小太小,您无法对其进行压缩,使用大多数压缩算法,结果可能会比单独字段所需的大
根据“”条款,一个表的最大大小为32TB或16G行


我不认为2.1和2.5在这种特定情况下有任何区别,但由于其他/一般性的改进,我会使用2.5。

基于前面提到的原因,将数据存储为一行比BLOB更有意义


我现在还是坚持2.1,2.5有太多我不喜欢的bug

你的问题不是很清楚。数据库是为存储大量数据而设计的,您提供的定义肯定不需要使用blob或压缩,不必要地使用它们会增加完全不必要的开销。你能确切地说明你在问什么吗?你是用正确的方式做的。数据库系统的设计正是为了存储大量的行。不要担心压缩,这是在浪费时间。在任何情况下都不要犯尝试使用BLOB的错误!你是对的。我的问题是关于Firebird 2.1实现的。我编辑了这个问题。感谢当我在当前工作中第一次接管数据库时,它最初是用一些字段作为blob设置的,只是为了回显blob(在php中)而不得不做的事情很可笑,所以我将它们全部切换到普通行,没有任何人注意到的差异,加上我们数据库中的一些表有600000多行。但是如果我得到很多小记录,我可以把它们放在一个水滴里,然后压缩那个水滴。我会做一些测试并将结果发布在这里。好吧,看起来你只是喜欢它带来的额外工作。用我的答案中的数字做一些计算-担心空间有意义吗?你有这么多记录以至于有可能达到极限吗?假设
id
fk\u to\u一些持有者表
是64位整数,则记录为224位或28字节。因此32TB/28=1.1T行,即行限制更为重要。但是,如果每秒获得1行,则16G行适用于16G/86400=185185185天或大约500年。@haole AFAIK,Firebird在存储数据时在内部使用RLE压缩。它可能和一些外部操作一样有效,值得注意的是,一些压缩已经完成了。