选择什么数据类型 json 还是 jsonb 或者 text

2024-03-04

我想存储一个大的 json 哈希(或内容,随心所欲地称呼它),“大”是指超过 1000 个键值对的东西,我不想在该 json 字段上进行任何搜索,我只想从数据库中检索它并将其传递给 JavaScript 进行解析并构建可视化结果。

在 Postgresql 上有一个json类型和jsonb类型(也许我可以使用text字段以及存储 json) 。我只是想为此目的做出正确的选择,所以我想请有经验的人提供一些建议。


假设您正在谈论实际的、严格的 JSON(没有诸如不带引号的键之类的怪癖)...

jsontext。除了验证 JSON.

jsonb与这两者相比,它是一个不同的野兽:它是一个成熟的数据结构,具有自己的内部格式,在搜索中具有更多可用的操作。例如json没有适用的=(相等运算符)。jsonb has. (text也有,尽管它在语义上有所不同。)

索引更明智,但在读取和写入期间必须来回转换。

鉴于,jsonb这里看起来不是一个合理的选择。


......所以只剩下一个决定要做:

您是否希望确保数据库列中仅包含有效的 JSON 值?在数据库级别?或者您是否信任该数据库的每个客户端(通常是服务器应用程序)只提供有效数据?

json无论哪种方式都是一个相对安全的选择。 Using text由于缺乏验证,理论上可以将性能提高到可以忽略不计的程度,但您只能通过基准测试获得特定的数字。但它没有针对非 JSON 值的防护措施,并且客户端中的意外错误可能会被忽视。负责任地测试!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

选择什么数据类型 json 还是 jsonb 或者 text 的相关文章

  • 意外的令牌:尝试解析 JSON 字符串时

    我正在尝试解析这个 JSON 字符串 RESULTS name Thessaloniki GR type Sailing l sailing weather beach Porto 20Carras 20Marina 45904 name
  • 从 JSON 文件注入的编译指令 AngularJS

    希望有人能帮助我应对这一挑战 我使用以下命令从服务器请求 JSON 数据 http get 来自服务器的数据返回一个对象 对象中的一个值包含 HTML 标记 该标记使用以下方式注入到页面中 div div 在标记内 有一个名为的自定义指令
  • java -postgresql 最后插入的 id 插入时未获取

    我有一个插入功能postgresql如下 CREATE OR REPLACE FUNCTION insert orderhead order id integer order dt text customer id integer rout
  • SQL Server 抱怨无效的 json

    我正在使用 Azure 数据工厂和 Azure SQL 数据库编写 ETL 工具 数据工厂捕获映射数据流的输出并将其作为字符串插入到 SQL Server 表 Audit OperationsEventLog 的 StatusMessage
  • 如何将异常序列化为Json

    C 异常是 ISerialisable 因此它们不能也是 DataContract 因此我无法使用 JsonDataContractSerializer 将异常序列化为 JSON 的替代方案是什么 由于这个问题还没有真正得到解答 只需创建一
  • 用于检查 Apache Camel XML 中字符串的 JSONPath 表达式

    假设我有一个简单的 json 文件 如下所示 log host blah severity INFO system 1 我正在使用 Apache Camel 它是 Spring XML 来处理和路由 json 文件 我的路由代码看起来像这样
  • 如何引用下一行的数据?

    我正在 PostgreSQL 9 2 中编写一个函数 对于股票价格和日期的表 我想计算每个条目较前一天的百分比变化 对于最早一天的数据 不会有前一天 因此该条目可以简单地为 Nil 我知道WITH声明可能不应该高于IF陈述 到目前为止 这就
  • 在 swift 中将简单字符串转换为 JSON 字符串

    我知道有一个同标题的问题here https stackoverflow com questions 30825755 convert string to json string in swift 但在那个问题中 他试图将字典转换为 JSO
  • 在 PostgreSql 中计算百分比

    例如我有一个这样的表 string adm A 2 A 1 B 2 A 1 C 1 A 2 通过 SQL 查询 我想要这样的结果 string perc adm A 50 B 100 C 0 我想要每个字符串中数字 2 出现的百分比 我可以
  • 使用 NLog .NET Core 将日志记录到 PostgreSQL DB

    我尝试将日志记录集成到 NET Core 中的数据库 我能够设置 NLog 并将消息记录到 SQL Server 这很容易 但是当我尝试将 DB 切换到 PostgreSQL 时 似乎没有记录任何内容 以下是startup cs中的代码 p
  • 通过 json 模式 Sequelize 定义模型

    我想通过json制作Sequelize模型广告 我在文档中找不到是否可以通过 json 模式进行模型声明 对于这么强大的库 没有这样的功能很奇怪 也许我找错地方了 只是试图找到同一问题的答案 模式示例 类型 对象 模式 http json
  • postgresql 登录到另一个表时发生冲突

    我正在使用 PostgreSQL 9 5 并尝试使用批量插入每天插入数百万行 INSERT INTO tours as cst adults country id price VALUES 3 129 80 2 119 120 on con
  • 如何在 pandas 中读取并标准化以下 json?

    我在 stackoverflow 中使用 pandas 看到了很多 json 读取问题 但我仍然无法解决这个简单的问题 Data session id 0 X061RFWB06K9V 1 5AZ2X2A9BHH5U unix timesta
  • postgresql:插入...(选择*...)

    我不确定它是否是标准 SQL INSERT INTO tblA SELECT id time FROM tblB WHERE time gt 1000 我正在寻找的是 如果 tblA 和 tblB 位于不同的数据库服务器中怎么办 Postg
  • 将两个 JSON 数据合并为具有特定键值的一个

    我有两个 CSV 文件 球数据 json id 1 color red id 2 color blue 法庭 json court id 2001 ball in use 1 court id 2005 ball in use 2 如何根据
  • 为什么 json.Unmarshal 返回映射而不是预期的结构?

    看看这个游乐场 http play golang org p dWku6SPqj5 http play golang org p dWku6SPqj5 基本上 我正在工作的图书馆收到了interface 作为参数 然后需要json Unma
  • 为什么 PyYAML 花费这么多时间来解析 YAML 文件?

    我正在解析一个大约 6500 行的 YAML 文件 格式如下 foo1 bar1 blah name john age 123 metadata whatever1 whatever whatever2 whatever stuff thi
  • 使用连接池后如何处理过多的并发连接?

    Scenario 假设您有一个拥有大量流量的网站或应用程序 即使使用数据库连接池 性能也会受到真正的打击 站点 应用程序甚至可能崩溃 因为并发连接太多 Question 人们有什么选择来处理这个问题 我的想法 我在想有这个问题的人可以创建多
  • pyspark 将 twitter json 流式传输到 DF

    我正在从事集成工作spark streaming with twitter using pythonAPI 我看到的大多数示例或代码片段和博客是他们从Twitter JSON文件进行最终处理 但根据我的用例 我需要所有字段twitter J
  • Elasticsearch:预期的字段名称,但得到了 START_OBJECT

    我一直在尝试运行以下查询 但每次运行时都会收到以下错误 nested ElasticsearchParseException Expected field name but got START OBJECT field value fact

随机推荐

  • MongoDB 根据 _id 统计每分钟新文档数

    我想创建每分钟存储多少新文档的统计数据 由于具有标准 ObjectID 的 id 字段已经包含文档创建的时间戳 我认为应该可以以某种方式使用它 在 Stackoverflow 上 我发现了以下映射归约代码 可以在有用于创建数据的专用字段时完
  • 从具有特定窗口坐标的命令行启动 Google Chrome

    我正在尝试找到一个 shell 命令 该命令将使用特定的 x 和 y 坐标打开 Google Chrome 以便我可以在窗口打开时设置窗口的位置 是否可以使用命令行参数来执行此操作 我需要修改以下命令才能实现此目的 google chrom
  • python中不均匀的子图

    在 python 中创建 3 3 子图矩阵的最佳方法是什么 第一列包含 3 个子图 第二列包含 3 个子图 第三列包含2 个次要情节 最后两个子图应具有相同的大小 这意味着它们将在其他两列的中间图的中间相遇 我尝试使用 gridspec 来
  • 当应用程序未处于焦点或位于另一个选项卡中时,WaitForSeconds 停止工作

    我用 Unity 制作了 WebGL 游戏 不需要每个帧都进行一些计算 因此我将它们放在协程中 但当游戏在后台运行时 协程的工作速度会比平时慢 并且会额外等待 5 10 秒 例如 士兵跑向我 我向他们发射子弹以杀死他们 当他们进入射程时 他
  • 引导程序上的下拉子菜单不起作用

    我只是想问为什么引导程序上的下拉子菜单不起作用 我只是按照此链接中的说明操作 http getbootstrap com 2 3 2 components html http getbootstrap com 2 3 2 component
  • 从 shell 脚本将密码输入 openssl 命令

    我正在尝试将 p12 从 shell 脚本转换为 pem 无需任何用户输入 我可以将密码作为脚本中的变量 所以当我打电话时 openssl pkcs12 in p12 out cert pem nodes 终端打印 输入导入密码 并等待输入
  • Jersey 2.x 自定义注入注释与属性

    我正在从 DropWizard 0 7 1 迁移到 0 8 1 这包括从 Jersey 1 x 迁移到 2 x 在我的 使用 Jersey 1 18 1 的实现 我有一个MyProvider 为了简单起见 更改了所有类名 实现Injecta
  • 如何避免SRP混乱?

    通过应用 SRP 原则 您必然会有很多课程 如果这对于小型项目来说效果很好 那么您如何处理和组织大型项目中的类数量 你如何组织文件夹结构 你怎么记得你建造了什么 你怎么知道其他人是否没有在其他类中构建相同的功能 这适用于所有类型的图书馆 不
  • 在 VBA 中滚动网页时等待窗口重新加载

    我编写了一个 VBA 宏来计算 Google 搜索特定术语时返回的 大约 图像数量 我的意思是 程序应该计算返回的图像数量 向下滚动以加载更多图像 如果适用 最多可计算 400 个图像 这是 简化的 代码 Sub GoogleCount C
  • 如何在 C# 中运行同步计时器?

    我正在编写一个应用程序 它使用计时器在屏幕上显示某些事件发生时的倒计时 我想重用计时器 因为它对于应用程序中的一些操作会很方便 因此我指定了要环绕计时器的单词 例如 以下函数调用 CountdownTimer 90 You have unt
  • 为 git 子模块指定分支?

    我已经将 git 子模块添加到我的 git 存储库中并且工作正常 在我的 父 存储库中 我创建了一个功能分支 我的特征这需要对子模块进行一些更改 但我不想影响使用相同子模块的其他团队 因此我在子模块存储库上创建了相应的功能分支子模块功能有一
  • 如何在路由器上注册单个视图(不是视图集)?

    我正在使用 Django REST 框架 并一直在尝试创建一个返回少量信息的视图 并将其注册到我的路由器上 我有四个存储信息的模型 它们都有一个created time场地 我正在尝试创建一个返回最新对象的视图 基于created time
  • 使用 JSoup 作为服务显示超链接的 ListView

    我最近需要收集并显示超链接列表 这很有帮助example https stackoverflow com a 73160763 230513说明使用jsoup questions tagged jsoup and a Task
  • 观看 MongoDB 在 Python 中异步更改流

    我如何设置一个 python 服务来 异步 监视 mongodb 的更改流 我能找到的一切mongodb com https www mongodb com developer quickstart python change stream
  • 查询具有大数据集的 Firebase 数据库非常非常慢

    我在 Android 应用程序上使用 Firebase 数据库 正常情况下 它工作得很好 但是当数据库变得越来越大时 查询性能就会变得越来越差 我在数据库上添加了大约 5k 记录 在 elk 和 su 节点下 然后我在数据库上查询 在 cu
  • 如何处理反应中的多组单选按钮?

    所以我从后端获取一些数据 看起来像这样 data status 1 title Title 1 status 2 title Title 2 status 1 title Title 3 status 3 title Title 4 它们将
  • 移动多列,每列具有不同的偏移量

    我有一个像这样的 data table date a b c d e f 2008 1 5 3 6 9 8 2008 3 6 2 1 5 8 2008 2 8 3 4 3 0 2009 5 5 3 6 9 8 2009 3 3 2 2 5
  • Javascript 日期方法不一致 - getDate 与 getMonth

    这让我昨晚有点头疼 我想了解为什么 Date 对象中的 getDate 方法是基于 1 返回 1 31 的值 而 getMonth 方法是基于 0 返回 0 11 我想知道为什么同一对象的方法存在这种不一致 我理解为什么现在很难改变这种行为
  • Jquery StopPropagation 在 Firefox 中不起作用

    我的这段代码可以在 Safari 和 Chrome 上运行 但不能在 Firefox 中运行 Firefox 是否有 StopPropagation 问题 function Setup drop down menu dropdown tog
  • 选择什么数据类型 json 还是 jsonb 或者 text

    我想存储一个大的 json 哈希 或内容 随心所欲地称呼它 大 是指超过 1000 个键值对的东西 我不想在该 json 字段上进行任何搜索 我只想从数据库中检索它并将其传递给 JavaScript 进行解析并构建可视化结果 在 Postg