我阅读了很多帖子,我发现了很多不同的回复。
运行MYSQL 5.7,我有一个大型JSON对象,不需要查询,只需要存储。使用JSON
似乎效率低下 - 我不需要验证它。在这种情况下,最好的解决方案是什么? BLOB
或TEXT
是明显的选择,但两者中最好的选择是什么?
二进制文件需要转换回文本(你最好怎么做?PHP或在SQL查询期间?)文本只需要返回。我真的很感激任何澄清......
答案 0 :(得分:3)
manual对JSON类型的评价是什么?
优化的存储格式。存储在JSON列中的JSON文档是 转换为内部格式,允许快速读取访问 文件要素。当服务器稍后必须读取存储的JSON值时 在此二进制格式中,无需从文本中解析该值 表示。二进制格式的结构是为了启用服务器 通过键或数组索引直接查找子对象或嵌套值 不在文档中读取它们之前或之后的所有值。
强调我的。您显然正在保存此JSON对象,因为您打算在其他时间读取它。如果你在每个查询中读取它,将它存储为BLOB或TEXT可能是你从数据库中检索它的部分快几毫秒,但你将花费更多,并将TEXT对象转换为更多JSON文档。
另外,我们不要忘记JSON字段会删除所有不需要的空格等,因此它会比TEXT和BLOB更紧凑,这可能会抵消这两种类型提供的任何检索速度。
此外,使用JSON可以使您的系统面向未来。有一天你可能需要在你的JSON字段中搜索一个特定的项目,但是你在BLOB字段中有350万条记录,那么呢?