在 YugabyteDB 中将 JSON 存储为 TEXT 而不是 JSONB
Storing JSON as TEXT instead of JSONB in YugabyteDB
[用户在 YugabyteDB Community Slack 上发布的问题]
我有一列的值为 JSON string/json
。 JSONB 或 TEXT 列的首选类型应该是什么?
一个或另一个会影响性能/列大小/读写时间等吗?
该值将始终以完整的形式检索并作为参数传递而不进行任何计算。
在这种情况下,您可以将其存储为文本。这将在 INSERT 上节省一点 CPU,因为必须将字符串分析为有效 JSON 并转换为 JSONB,后者以二进制格式存储。
对于您可能想要 select JSON 对象的一个子集、对其进行计算或具有二级索引的所有其他情况,您需要将其存储为 JSONB.
[用户在 YugabyteDB Community Slack 上发布的问题]
我有一列的值为 JSON string/json
。 JSONB 或 TEXT 列的首选类型应该是什么?
一个或另一个会影响性能/列大小/读写时间等吗?
该值将始终以完整的形式检索并作为参数传递而不进行任何计算。
在这种情况下,您可以将其存储为文本。这将在 INSERT 上节省一点 CPU,因为必须将字符串分析为有效 JSON 并转换为 JSONB,后者以二进制格式存储。
对于您可能想要 select JSON 对象的一个子集、对其进行计算或具有二级索引的所有其他情况,您需要将其存储为 JSONB.