当前位置: 首页 > 面试题库 >

存储大型JSON-二进制或文本

宋典
2023-03-14
问题内容

我读了很多文章,并且发现了很多不同的答案。

运行MYSQL 5.7,我有一个不需要存储的大型JSON对象,只需要存储即可。使用JSON似乎效率低下-
我不需要验证它。在这种情况下最好的解决方案是什么?BLOB还是TEXT显而易见的选择,但是这两个之中最好的选择是什么?

二进制文件需要转换回文本(您最好怎么做?PHP还是在SQL查询期间?)仅需要返回文本。我非常感谢您的澄清…


问题答案:

什么是手动有关JSON类型的发言权?

优化的存储格式。存储在JSON列中的JSON文档将转换为内部格式,以允许 快速读取 文档元素。当服务器稍后必须读取以该 二进制
格式存储的JSON值时,则无需从文本表示形式解析该值。二进制格式的结构使服务器能够直接通过键或数组索引查找子对象或嵌套值,而无需读取文档中它们之前或之后的所有值。

强调我的。您显然要保存此JSON对象,因为您打算在其他时间读取它。如果您在每个查询中都读取它,则将它存储为BLOB或TEXT可能是从数据库中检索它的部分要快几微秒,但是您将花费更多的时间将TEXT对象转换为JSON文档。

同样不要忘了JSON字段会剥离所有不需要的空格等,因此它将比TEXT和BLOB更为紧凑,这可能会抵消这两种类型将提供的任何检索速度。

另外,使用JSON还可以使您的系统永不过时。有一天,您可能需要在JSON字段中搜索特定项目,但是在BLOB字段中有350万条记录,那又是什么呢?



 类似资料:
  • 问题内容: 我需要存储大量的二进制文件(10-20 TB,每个文件范围从512 kb到100 MB)。 我需要知道Redis是否对我的系统有效。我的系统中需要以下属性: 高可用性 故障转移 分片 我打算使用一组商品硬件来尽可能降低成本。请提出使用Redis构建这样的系统的利弊。我还对Redis的高内存需求感到担忧。 问题答案: 我不会将Redis用于此类任务。其他产品将更适合IMO。 Redis是

  • 我需要帮助使用Firebase函数将大型JSON文件从Firebase存储流到Firestore。 我想将几个大的换行JSON文件(11x700MB)传输到FireStore。我正在尝试从Firebase存储加载它们,对文件进行流式处理,并将内容写入Firestore集合。 我现在不知道该怎么做,但我很感激你的帮助。

  • 当使用带有base64数据的PUT请求上传到Google cloud storage时,图像(PNG)不会在浏览器中显示,并表示它包含错误(在FF中查看时)。 根据我在网上读到的东西,我觉得这是可能的,但我找不到任何例子来说明它是如何用PUT来完成的,以表明它工作时缺少什么。

  • 问题内容: 我建立与工作流 Gitlab , 詹金斯 和-也许- 的Nexus (我需要一个工件存储装置)。我想让GitLab存储 发行版/二进制文件 -是否可以方便地进行? 我不想有另一个可以从中下载版本(和文档)的服务,但是希望以某种方式将其与存储库管理器集成在一起,就像在GitHub中处理版本一样。有什么线索吗? 问题答案: 2015年11月更新:GitLab 8.2现在支持发行版 。 借助

  • 我正在构建一个软件来远程控制连接到另一台PC的无线电硬件。 我计划使用ZeroMQ进行传输,并使用类似于RPC的请求-回复,其上有表示操作的不同消息。 虽然我的大多数消息只是一些控制和状态信息,但应该可以选择设置要传输的数据blob或请求要接收的数据blob。这些数据blob通常在5-10MB的范围内,但也应该可以使用最大100MB的较大blob。 对于消息格式,我发现google协议缓冲区非常有

  • 问题内容: 我正在处理大型3D阵列,通常需要以各种方式对其进行切片以进行各种数据分析。一个典型的“立方体”可以达到〜100GB(将来可能会更大) 似乎在python中,大型数据集的典型推荐文件格式是使用HDF5(h5py或pytables)。我的问题是:使用HDF5来存储和分析这些多维数据集,而不是将它们存储在简单的平面二进制文件中,对速度或内存使用有好处吗?HDF5是否更适合表格数据,而不是像我