我想检查我是否打算使用"erlang record"存储功能作为无模式存储,我会对性能产生什么样的影响。
更清楚一点:
我需要有表格:人,年龄,性别,{其他属性,婚姻状况,孩子数量....}有关人员的信息可能具有不同的属性。例如:如果婚姻状况是未婚,我就不会有相应的人的孩子数。
表人应该有不同数量的列。 由于 Mnesia 是基于模式的,因此正在考虑拥有这样的表:
人,年龄,性别,属性,其中属性是[键值对属性]的列表。拥有这样的模式是个好主意吗?
查询可以进行哪些类型的查询优化,例如:获取所有带有"儿童人数=2"的人。
查询响应时间的影响是否与表中的记录数和每个属性列表中的属性数呈线性关系?
Mnesia 可能不是最适合您要做的事情。 原则上,列/记录字段是固定的。 通常按照您的描述包含额外属性的键值列表,但这意味着您无法有效地查询这些额外字段:每个查询都需要遍历整个表,复制每条记录并检查它是否满足条件。
查询响应时间的影响是否与表中的记录数和每个属性列表中的属性数呈线性关系?
是的。