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
对于索引大小大于数据库数据的几个表重复此操作。
答案 0 :(得分:0)
此link显示有关索引文件的讨论,也许可以帮助您。
对于第二个问题,应根据您的目的和数据选择索引(反之亦然)。数据类型(long,string)必须是最能代表您的字段的数据类型(例如,如果您只是一个整数,并且这对于作用域来说已经足够,则使用long是没用的)。索引的选择相同,如果您不需要重复选择将是非唯一的。如果你需要一个允许选择范围sb-tree而不是哈希的索引等等......