数组和连接之间的Postgresql性能比较

时间:2014-05-22 15:18:53

标签: sql database performance postgresql database-performance

与创建另一个表以存储具有多对多关系的值相比,使用数组存储值的postgres有什么性能影响?

我有一个表需要能够在数组列或单独的表中存储大约1-100个不同的字符串值。需要经常搜索这些值以获得完全匹配,因此查找性能至关重要。阵列解决方案会更快,或者使用连接来查找单独表中的值会更快吗?

1 个答案:

答案 0 :(得分:2)

  

需要经常搜索这些值

如何搜索?这很重要。

仅限前缀模式匹配?中缀/后缀模式也匹配?模糊字符串搜索/相似性匹配?对根词进行划分和规范化,去多元化?同义词搜索?是数据字符序列还是自然语言文本?一种语言,还是多种不同的语言?

挥手"搜索"做任何忽略那部分的答案都非常无效。

  

所以查找性能至关重要。阵列解决方案会更快,或者使用连接来查找单独表中的值会更快吗?

如果没有关于您正在搜索的数据的正确信息,则无法严格确定。

搜索文本字段更加灵活,为您提供了许多您没有使用数组搜索的选项。它通常还会减少必须读取的数据量。

总的来说,我强烈推崇Clodaldo:设计得恰到好处。如果需要,请稍后进行优化。