递归查询花费的时间太长。还有其他方法吗?

时间:2020-05-05 12:39:20

标签: mysql sql optimization common-table-expression recursive-query

我对mysql中的查询有疑问。

我做了非常简单的测试

Table test
id,
name,
parent_id

查询

with recursive step00(id,name,parent_id) as
(
    select id,name,parent_id
    from test
    where parent_id = 3 #test id
    union all
    select r.id, r.name, r.parent_id
    from test r
    inner join step00 on r.parent_id = step00.id
) select count(*) from step00;

一个用户可以有1个用户作为引荐。 (parent_id) 我已经插入了500,000。一个用户有4689个用户(最多10个级别)。 我已经执行了上面的查询,花了12秒返回了4689个用户。

我想做一个专栏,将所有子ID保存在json中,以减少获取子帐户的速度,从而更快地获取所有子帐户。 有没有其他方法可以实现这一目标,而又不用增加一列就可以快速获得结果?

0 个答案:

没有答案