我打算json_encoded
在我的数据库中存储一个字符串。我不能准确地说出它的长度,但我很确定它会很长。我关心的是我将为此使用哪种字段类型,是它blob
还是text
?
我更喜欢可以通过快速搜索尽可能节省空间的那个,无论如何我还有其他列我应该只索引。
我打算json_encoded
在我的数据库中存储一个字符串。我不能准确地说出它的长度,但我很确定它会很长。我关心的是我将为此使用哪种字段类型,是它blob
还是text
?
我更喜欢可以通过快速搜索尽可能节省空间的那个,无论如何我还有其他列我应该只索引。
如MySQL文档中所述,从 5.7.8 开始支持原生 JSON 数据类型。
与将 JSON 格式的字符串存储在字符串列中相比,JSON 数据类型具有以下优势:
因此,正如 MySQL 文档所述,应使用 JSON 数据类型而不是文本。
blob
通常用于图像、二进制文件等。text
对于您的情况应该足够好,或者longtext
如果这确实是一个问题,您可以使用具有更大空间容量的东西。
搜索方面,由于您正在存储json_encode
'd 的东西,您仍然需要调用json_decode
它才能在您的应用程序中使用它,我认为在这种情况下选择数据类型并不重要。
更好的方法是规范化你的数据库设计,而不是将相关的东西存储在一大串 json 中。