我打算在我的数据库中存储一个json_encoded
字符串。我不能准确地说出它的长度,但我很肯定它会很长。我担心的是我将使用哪种字段类型,是blob
还是text
?我应该在MySQL中使用blob还是文本JSON?
我更喜欢能够通过快速搜索尽可能节省空间的任何情况,无论如何,我还有其他专栏,我只需索引。
我打算在我的数据库中存储一个json_encoded
字符串。我不能准确地说出它的长度,但我很肯定它会很长。我担心的是我将使用哪种字段类型,是blob
还是text
?我应该在MySQL中使用blob还是文本JSON?
我更喜欢能够通过快速搜索尽可能节省空间的任何情况,无论如何,我还有其他专栏,我只需索引。
blob
通常是类似图像等内容,双星等text
应该是你的情况不够好,或者你可以使用longtext
它有更大的空间容量,如果这是一个真正的问题。
由于您正在存储json_encode
的东西,因此无论如何仍然需要调用json_decode
,因为它在您的应用程序中很有用,我不认为在这种情况下选择数据类型很重要。
更好的方法是规范化数据库设计,而不是将相关的东西存储在一个json的大字符串中。
如文档MySQL所述,由于5.7.8支持本机JSON数据类型。
JSON数据类型在存储JSON格式字符串字符串中的列提供这些优点。无效的文档会产生错误。
因此,正如MySQL文档所述,应该使用JSON数据类型而不是文本。
感谢您的真知灼见。 – 2012-04-18 03:22:18
我大约2年11个月后,但对于webhooks的有效载荷,在等待它发送的同时存储序列化的JSON似乎是一个很好的用例。如果有人有不同的看法,我喜欢反馈。 – Mave 2015-03-12 11:54:48
Pinterest在'text'中也存储了JSON,他们[最近在本文中发布了它(向下滚动一半)](https://engineering.pinterest.com/blog/sharding-pinterest-how-we-scaled-我们的MySQL的舰队)。 – DanFromGermany 2015-09-15 13:23:26