postgresql hstore key / value vs传统的SQL性能
我需要开发一个键/值后端,如下所示:
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或任何其他分布式键/值存储? 如果它有帮助,我的服务器是一个具有1-2GB RAM的VPS,所以不是一个非常好的硬件.我还想在此基础上设置一个缓存层,但我认为它使问题复杂化.我只想要2M条目的良好表现.更新将经常进行,但更频繁地进行搜索. 谢谢.
您的问题不明确,因为您不清楚自己的目标.
这里的关键是索引(双关语) – 如果你处理大量的密钥,你希望能够用最少的查找来检索它们而不需要提取不相关的数据. 简短的回答是你可能不想使用hstore,但让我们来看看更多细节…… >每个id都有很多键/值对(数百个)吗?不要使用hstore. 那么什么是hstore的用途?好吧,一个好的方案是,如果你想为外部应用程序保存键/值对,你知道你总是想要检索所有键/值,并且总是将数据保存为块(即,它永远不会被编辑 – 地点).与此同时,您确实需要一些灵活性来搜索这些数据 – 非常简单 – 而不是将其存储在XML或JSON块中.在这种情况下,由于键/值对的数量很小,因此您可以节省空间,因为您将几个元组压缩到一个hstore中. 将此视为您的表格: CREATE TABLE kv ( id /* SOME TYPE */ PRIMARY KEY,key_name TEXT NOT NULL,key_value TEXT,UNIQUE(id,key_name) ); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |