gpt4 book ai didi

ruby-on-rails - 键/值 Postgres SQL 表性能

转载 作者:行者123 更新时间:2023-11-29 13:36:03 25 4
gpt4 key购买 nike

我目前正在构建一个 Rails 应用程序,其中有一个“文档”数据表,用于存储对驻留在 S3 服务器上的 pdf 的引用。这些文档可能有 100 种不同的类型。每种类型最多可以有 20 个属性或元信息。

我的困境是我是为每种文档类型制作 100 个关系表,还是只创建一个引用 doc_id 的键/值数据表。

我的直觉告诉我要灵活地使用键/值来搜索和支持越来越多的文档类型,而无需创建新的迁移。但是,我知道这种技术存在缺陷。我首先关心的当然是 table 的大小。键/值表最终可能有数百万行。

另一方面,在全文搜索情况下,拥有 100 个属性表将是一场噩梦。

所以底线是,通过使用键/值,3 列 Postgres 表的性能可能有数百万行是一个扩展问题吗?另外,值字段上的联接怎么样?

顺便说一下,这个数据几乎永远不会改变。所以这将是 90% 的阅读。

最佳答案

考虑一个带有 hstore 列的表。它是一种专为存储键/值对而设计的 PostgreSQL 数据类型。

http://www.postgresql.org/docs/9.1/static/hstore.html

还有多个 Ruby gem 将 hstore 支持添加到 ActiveRecord。这是我写的:https://github.com/JackC/surus您还可以在 ruby​​ gems 中搜索大约十几个替代品。

关于ruby-on-rails - 键/值 Postgres SQL 表性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11423825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com