首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以将JSON存储在MySQL数据库表字段中?这对我来说是个好主意吗?如果是这样的话,是如何做到的呢?

是否可以将JSON存储在MySQL数据库表字段中?这对我来说是个好主意吗?如果是这样的话,是如何做到的呢?
EN

Stack Overflow用户
提问于 2019-08-12 21:15:25
回答 4查看 46关注 0票数 0

事情是这样的,我目前有一个应用程序,它使用第三方API,它的端点返回JSON。目前,当在前端挂载组件时,我执行一个函数,该函数向我自己的后端发出GET请求,作为回报,我的后端向第三方API发出GET请求,然后来自API的响应以JSON的形式返回给前端。

现在这一切都很好,但是,我对该API的允许请求数量是有限的,所以我希望确保将响应保存到我的数据库中,这样当将来发出请求时,我的后端将返回数据库中的内容,而不是发出一个全新的GET请求。

现在的问题是,我不确定存储JSON是否明智或可行,这就是为什么我决定首先咨询你们,因为你们非常有帮助。JSON应该保存在什么数据类型下,我所做的事情会有什么缺点吗?

EN

Stack Overflow用户

发布于 2019-08-12 22:07:47

是的,这是可能的。从5.7版本开始,MySQL就实现了JSON数据类型。

如果您询问有关如何操作此数据类型的技术细节,请参阅excellent shortcut

仅举几个例子:

创建:

代码语言:javascript
运行
复制
mysql> CREATE TABLE facts (sentence JSON);

插入:

代码语言:javascript
运行
复制
mysql> INSERT INTO facts VALUES
     >   ('{"mascot": "Our mascot is a dolphin named \\"Sakila\\"."}');

阅读:

代码语言:javascript
运行
复制
mysql> SELECT sentence->"$.mascot" FROM facts;

但我敢打赌,一个真正的问题是,在数据库中存储JSON有多明智。

所以一般的答案是:

if developers of particular RDBMS included such aproach in their implementation, it is intended and desired for use.

因此,只要将数据格式化为JSON是一个好主意,那么将该数据存储在RDBMS的JSON列中也是一个好主意。我没有这个实现的经验(我更喜欢Postgresql而不是MySQL),但是我在需要的时候就开始使用JSON数据类型了,但我仍然不认为这是一个糟糕的决定。

特别是,当您考虑将JSON格式的数据存储在文件中并仅挂钩数据库中的路径时,使用JSON类型应该是一个好主意。在文件中存储JSON格式的数据几乎总是比插入和查询JSON慢,特别是当您只需要访问特定的键值对时(您可以在普通的selects中只查询特定的键)。

但是,如果您的数据根本没有集成到以JSON格式存储,那么使用JSON数据类型也不是一个好主意。JSON不喜欢哪种数据?基本上,当number-of-keys :TO: overall-size比率非常小时,所有类型的非结构化流。举个例子,字典有一个键,值存储了500个kByte的长字符串:

代码语言:javascript
运行
复制
{"file": "a very very very ... long string, perhaps just encoded file"}

在这种情况下-是的,一个更好的方法是将其存储为常规文件。

因此,与往常一样,这一切都取决于特定的用例:)

票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57461932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档