1.优点
1.不用为数据中的每个key值新建一个字段,可以任意的增减字段而无需修改数据表结构,甚至可以减少数据表的设计。
2.可以减少数据表的查询,减少关联查询,一个查询的结果就可以代替几个查询的结果,降低数据库服务器的压力。
2.缺点
1、json数据仅仅只能用于展示display,如果用于条件查询,数据更新其效率是很低的,而且难于优化,不要尝试在json字段上进行查询优化。
2、虽然mysql5.7支持了json类型,但mysql作为关系型数据库,对标准化的column-per-value支持更好,包括数据类型限制、长度限制,唯一索引限制,查询索引优化,外键关联,关联查询支持,运算支持等,这些都是json中key无法达到的。
3、将常用的查询字段从json数据中剥离出来形成单独的字段,虽然可以改善查询问题,但你最好有先见之明,如果后期进行剥离就会涉及代码修改和数据迁移,遇到多版本的话,还可能出现数据冗余的问题,处理不好还会出现数据不一致问题,并不仅仅这么简单,一定慎用。
4、存储json的text类型性能并不乐观。
5、大JSON的解析性能同样不乐观,而且对于中文数据,纯JSON太占空间了