|
|
2
0
就性能而言,使用#3中所示的表可能会浪费大量的存储和RAM,因为对于每一行,您为每种类型的值分配空间,但只使用一个。如果您使用2008年新增的稀疏表功能,可能会有所帮助,但也存在其他问题:约束/规范化有点困难,因为您只希望为每行填充多个值中的一个-在两列中包含两个值将是一个错误,但设计没有反映这一点。我会把它划掉。 因此,如果是我,我会考虑选项1、2或4,决策将由以下因素驱动:我通常需要进行一次查询,返回具有 同一结果集中不同类型的值的数量?或者我几乎总是要求按项目列出行 和 按类型。我之所以这样问是因为如果值是不同的类型,这对我来说意味着源或数据使用方面的一些差异(例如,您不太可能比较字符串和实数,或者字符串和位)。这是相关的,因为每种类型有不同的表实际上可能是一个显著的性能/可伸缩性优势,如果以这种方式对数据进行分区,则查询会更快。将数据划分为更小的更密切相关的数据集可以提供性能优势。
细节:
|
|
|
3
0
什么是使用场景?从查询示例开始,计算必要的索引。 考虑前面提到的数据划分。尽量多了解您的数据/关系。我认为决策应基于数据的商业意义/用途。 |
|
Sweepy Dodo · JSON lite的格式化 1 年前 |
|
|
giantjenga · 优化整数向量到二进制向量的转换 1 年前 |
|
Zegarek · Postgresql递归查询未提供预期结果 1 年前 |
|
|
Joe · 为什么这两个查询之间的性能存在如此大的差异? 2 年前 |
|
tic-toc-choc · 在`dplyr中高效使用列表进行过滤` 2 年前 |