Mysql频繁修改的JSON数据,用Text类型存,还是用Json?

看到别人写的规范,不要将 JSON 类型字段 用于频繁更新的字段场景中使用;

Mysql 频繁修改的 JSON 数据,用 Text 类型存,还是用 Json? 为什么?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
最佳答案

5.7 之前 json 只能是存 text,5.7 以后 json 就很香了,主要是有的情况下能减少表的复杂程度。按照上面说的,不建议频繁更新的场景使用 json 大概是因为查询、更新的效率相对单个字段低,更新起来相对麻烦,但是有频繁更新的场景的话,可以考虑维护缓存(redis 哈希表)、mongodb 等,但是实在绕不开,数据量不大的话,也是可以的。

2年前 评论
讨论数量: 15

应该是 text,json 都不用,只做读

2年前 评论
Mutoulee

习惯 text 存

2年前 评论

直接 text,json 不用也不看,各种查询问题 bug 问题也不用去烦

2年前 评论

我觉得 json 吧,既然有了这个格式肯定有道理

2年前 评论
mnizfd

json 不管是查或是更新 效率更快 参考文章 ifeve.com/mysql-json/ dev.mysql.com/doc/refman/8.0/en/js...

2年前 评论

8.0 后可以用 json

2年前 评论

5.7 之前 json 只能是存 text,5.7 以后 json 就很香了,主要是有的情况下能减少表的复杂程度。按照上面说的,不建议频繁更新的场景使用 json 大概是因为查询、更新的效率相对单个字段低,更新起来相对麻烦,但是有频繁更新的场景的话,可以考虑维护缓存(redis 哈希表)、mongodb 等,但是实在绕不开,数据量不大的话,也是可以的。

2年前 评论

如果是 mysql8 直接上 json,因为专门优化了

2年前 评论
jiangjun

频繁改,注意不要并发,覆盖了

2年前 评论
my38778570 (楼主) 2年前
jiangjun (作者) 2年前

既然频繁读写你应该改为子表,而不是去纠结 json 还是 text,遇到复杂的查询 json 还是比较麻烦的

2年前 评论
DonnyLiu

mysql5.7 或之前的版本用 text 吧,8.0 就用 json

2年前 评论

建议将 json 拆成独立的字段,满足第一范式

2年前 评论
my38778570 (楼主) 2年前