【发布时间】:2022-11-11 02:24:26
【问题描述】:
我的查询遇到了优化问题,一旦我在查询中使用聚合 GROUP BY 和 JSON_OBJECT(),性能就会受到严重影响,而且似乎 JSON_OBJECT() 函数在表,即使有LIMIT。
一旦没有更多的GROUP BY,查询就会执行得非常快。我将我正在使用的查询抽象为最简单的,但我需要GROUP BY 原因
我正在使用 JSON_ARRAYAGG() 进行另一个连接。
我的表中有大约 25k 行,按聚合删除组时所需的时间减少了 10 倍
select JSON_OBJECT('id',`b`.`id`) as bw
from a
left join `b` on `a`.`id` = `b`.`id_a`
group by `a`.`id`
LIMIT 1;
【问题讨论】:
-
嗨,不必大喊你的头衔
-
@RiggsFolly 确实,感谢您的编辑
-
请您阅读Tips for asking a good Structured Query Language (SQL) question) 并相应地修改您的问题。
-
mysql 必须读取每一行来解码 json,然后才能进行任何计算或分组。
-
@FreudianSlip 但是如何在 group by 之后创建我的 json 对象和数组?
标签: mysql json performance optimization query-optimization