虽然mysql5.7支持了json类型,但mysql作为关系型数据库,对标准化的column-per-value支持更好,包括数据类型限制、长度限制,唯一索引限制,查询索引优化,外键关联,关联查询支持,运算支持等,这些都是json中key无法达到的。
将常用的查询字段从json数据中剥离出来形成单独的字段,虽然可以改善查询问题,但你最好有先见之明,如果后期进行剥离就会涉及代码修改和数据迁移,遇到多版本的话,还可能出现数据冗余的问题,处理不好还会出现数据不一致问题,并不仅仅这么简单,一定慎用。
存储json的text类型性能并不乐观。
大JSON的解析性能同样不乐观,而且对于中文数据,纯JSON太占空间了。
存储JSON文档所需的空间与LONGBLOB或LONGTEXT大致相同;存储在JSON列中的任何JSON文档的大小都限制为max_allowed_packet系统变量的值。可以使用JSON_STORAGE_SIZE( )函数获取存储JSON文档所需的空间量。
["ade", 12, null, true, false]
{"k1": "value", "k2": 2}
[99, [78, "e"], {"k1": 1, "k2": "a"}, "de"]
{"k1": 1, "k2": [10, "s"]}
使用JSON路径表达式选择JSON文档中的值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)