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

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

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

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

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

1年前 评论
讨论数量: 15

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

1年前 评论
Mutoulee

习惯text存

1年前 评论

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

1年前 评论

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

1年前 评论
mnizfd

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

1年前 评论

8.0后可以用json

1年前 评论

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

1年前 评论

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

1年前 评论
jiangjun

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

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

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

1年前 评论
DonnyLiu

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

1年前 评论

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

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

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!