这很重要,我目前有一个使用第三方API(其端点返回JSON)的应用程序。当前,当安装前端上的组件时,我执行一个函数,该函数向我自己的后端发出GET请求,而我的后端向第三方API发出GET请求,然后从API响应以JSON的形式返回到前端。
现在这一切都很好,但是,我对该API的允许请求数量有限,因此我想确保将响应保存到数据库中,以便将来发出请求时,我的后端会返回数据库中的内容,而不是发出全新的GET请求。
现在问题是,我不确定存储JSON是否明智或可行,这就是为什么我决定先咨询您的家伙,因为您的帮助非常大。应该以哪种数据类型保存JSON,我的操作会不会有任何弊端?
答案 0 :(得分:2)
是的,您可以将JSON保存到mysql数据库。 Mysql在5.7版本以上添加了JSON数据类型。
答案 1 :(得分:0)
是的,您可以将JSON响应保存在表本身内。
但是它将采用简单的字符串格式,并且需要在代码级别解析JSON字符串。
您可以使用CLOB。
答案 2 :(得分:0)
这只是一个BLOB,并没有固有的错误,它是受支持的数据类型。
但是,我建议您将JSON保存到文件中,并保留路径列表。仅仅是因为它会更快。
答案 3 :(得分:0)
是的,这是可能的。 MySQL从5.7版本开始实现JSON数据类型。
如果您要询问有关如何使用此数据类型的技术细节,这里是excellent shortcut。
仅举几个例子:
创建:
mysql> CREATE TABLE facts (sentence JSON);
插入:
mysql> INSERT INTO facts VALUES
> ('{"mascot": "Our mascot is a dolphin named \\"Sakila\\"."}');
阅读:
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慢,尤其是当您只需要访问特定键值对时(可以在普通选择中仅查询特定键)。
但是,如果您的数据根本不打算以JSON格式存储,那么也不要使用JSON数据类型。 JSON不喜欢哪种数据?基本上,当number-of-keys :TO: overall-size
比率非常小时,各种非结构化流。一个示例是带有一个键的字典,其值存储500 kByte长的字符串:
{"file": "a very very very ... long string, perhaps just encoded file"}
在这种情况下-是的,更好的方法是将其存储为常规文件。
一如既往,这都取决于特定的用例:)