【发布时间】:2012-02-28 18:33:12
【问题描述】:
我需要开发一个键/值后端,如下所示:
Table T1 id-PK, Key - string, Value - string
INSERT into T1('String1', 'Value1')
INSERT INTO T1('String1', 'Value2')
Table T2 id-PK2, id2->external key to id
some other data in T2, which references data in T1 (like users which have those K/V etc)
我听说过带有 GIN/GIST 的 PostgreSQL hstore。什么更好(性能方面)? 使用 SQL 连接并具有单独的列(键/值)以传统方式执行此操作? PostgreSQL hstore 在这种情况下表现更好吗?
数据的格式应该是任意键=>任意值。 我也想做文本匹配,例如部分搜索(SQL 中的 LIKE % 或使用 hstore 等效项)。 我计划在其中包含大约 1M-2M 条目,并且可能会在某个时候扩展。
你有什么推荐的?采用 SQL 传统方式/PostgreSQL hstore 或任何其他具有持久性的分布式键/值存储?
如果有帮助,我的服务器是具有 1-2GB RAM 的 VPS,所以不是一个很好的硬件。我还想在此之上有一个缓存层,但我认为这会使问题复杂化。我只想要 2M 条目的良好性能。更新会经常进行,但搜索会更频繁。
谢谢。
【问题讨论】:
-
我认为你应该在 serverfault.com 上问这个问题。
-
postgres 邮件列表也不错,然后您可以将答案发回这里并获得积分;-) 试试archives.postgresql.org/pgsql-general 或者archives.postgresql.org/pgsql-performance。
标签: sql performance postgresql key