pg2222 2020-02-21 20:52 采纳率: 0%
浏览 1045

mysql 无限级菜单表查询所有父菜单下所有子菜单的个数优化

各位大神,我数据库里有一张菜单表,有id,pid和title,想要一次性查询所有父菜单下面所有的子子孙孙菜单的个数,在网上查了很久,也能实现,但查询时间太长,10万条数据以下超1分钟,不能接受。请哪位大神帮忙优化一下,感谢!

SELECT cid AS id, pid, code AS title, count(cid) AS totle FROM (SELECT * FROM (SELECT url AS path, id, cid, pid, CODE, grade FROM menu WHERE isphoto=0) AS a LEFT JOIN (SELECT url, pid AS parent FROM menu WHERE isphoto=1) AS b ON LOCATE(a.path, b.url)) AS c GROUP BY cid

实在没有积分,请大神帮忙一下。

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-02-21 22:09
    关注

    LOCATE(a.path, b.url))
    这种肯定慢,建议你不同的path url单独放在一个表,这里对应每个id(不同的id代表不同的url),数字的连接加上索引就很快了

    评论

报告相同问题?

悬赏问题

  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误