简单梳理一下需求:
程序员懒得去写struct
程序员在写某种通用json返回库, 此时查询结果一定是要返回转义后的json的。
可以看一下mysql5.7~8.0/8.1新出的mysql函数jsonarrayagg()、json_object()和json_objectagg(), 前两个函数可以嵌套使用来输出多行查询结果的json格式
打比方, 一个简单语句输出成json
select fieldA, fieldB from tableX;
改为
select json_arrayarg(json_object('fieldA', fieldA, 'fieldB', fieldB)) from tableX;
此时输出json结果为
[{"fieldA":xxx, "fieldB":xxx}, {"fieldA":xxx, "fieldB":xxx} ...]
是否满足你的业务需求呢?
如果是输出单独一个字段的json结果, 则改为使用json_objectagg()函数嵌套, 小伙伴们可以自行探索一下。
性能损耗探索
经过测试,即便不将业务库分割到不同mysql实例的&&高并发情况下, 性能影响与原生查询几乎无异。Mysql输出个json给你还是输出个默认格式的给你,看起来官方是事先盘好的。
完结撒花。