如何高效实现此

yaotomo 2018-08-19 05:01:38
做一个统计功能,用函数实现
mysql数据库中有一个location表保存全国所有省市地区的名称和ID,有3000多条
另一个location_site表保存每个地区对应网站的数据(一个地区有一个网站,一对一的关系)
第三个location_statistic表保存每个地区网站的统计信息(也是每个地区有一个统计记录)
函数实现的功能是每天定时更新这些统计信息
在统计的时候,要把子节点的数据一起加上
比如在统计辽宁省的数据时,要连同沈阳市、鞍山市等各个市级行政区域,以及这些市下的区级行政区域的数据一起SUM统计
而location_site只保存本地区节点的信息,不包含下级行政区域的数据
我现在以及有了获取某节点的所有子节点和父节点的函数
每天更新统计信息的话
就要获取某个节点的所有子节点,对这个节点进行统计运算
然后遍历location_statistic表,一条一条数据进行更新
所有子节点是一个字符串,还要用到in去查询,可以说效率非常之低
有没有什么好的办法可以高效完成以上的功能呢,在数据库层面
...全文
339 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
grace8 2018-10-08
  • 打赏
  • 举报
回复
涉及的业务逻辑略复杂,可以在业务层处理,数据层重逻辑的话,存在的问题在于不好测试并解决bug,完全可以把这些交给业务逻辑处理,如果处理通了某个省市,那其他的就遍历处理即可。参考 深入理解MySQL
MW_long 2018-08-21
  • 打赏
  • 举报
回复
每个id 加上标识符, 属于哪个省啊, 然后表连接, 不就知道 哪个省了, 然后where 条件就出来了啊
verejava 2018-08-20
  • 打赏
  • 举报
回复

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧