为什么磁盘上的orientdb索引大​​小如此之大

时间:2016-05-11 15:01:09

标签: orientdb

orientdb 2.0.5

我有一个数据库,我们在一个名为indexstat的类的2个属性上创建非unque索引。

构成索引的两个属性是字符串标识符加上长时间戳。

每5分钟创建数批数百条记录。几个小时后,旧记录被删除。

这是文件列表,是与该表相关的文件。

问题: 为什么根据文档(与非唯一索引相关)的.irs文件......几个小时之后如此巨大。比实际数据大298056704字节(.irs大小 - .sbt大小 - .cpm大小)。

我认为索引会小于实际数据。

第二个问题: 这里的最佳做法是什么。我应该使用唯一索引而不是非唯一索引吗?我是否应该找到一种方法使索引中的数据更小(例如,使用long而不是字符串作为标识符)?

以下是文件名和每种文件的大小。

indexstat.cpm 727778304
indexstatidx.irs 1799095296 
indexstatidx.sbt 263168 
indexstat.pcl 773260288 

对于索引大小大于数据库数据的几个表重复此操作。

1 个答案:

答案 0 :(得分:0)

link显示有关索引文件的讨论,也许可以帮助您。

对于第二个问题,应根据您的目的和数据选择索引(反之亦然)。数据类型(long,string)必须是最能代表您的字段的数据类型(例如,如果您只是一个整数,并且这对于作用域来说已经足够,则使用long是没用的)。索引的选择相同,如果您不需要重复选择将是非唯一的。如果你需要一个允许选择范围sb-tree而不是哈希的索引等等......