php mysql 获取自己的全部N级下线人员数据的高效方法?

php mysql 获取自己的全部N级下线人员数据的高效方法?,第1张

你这个数据其实是N叉树,使用二维表来存储的,遍历某一个分支只有递归,代码怎么写本质上与你的是一致的,不会有什么新意。

提高效率的一个办法,就是数据库建立agentid字段上建立索引。

但是只是在Master下线这些日志表,而Slave还需要保持在线,以备查询。

由于Master-Slave结构,在Drop表之前,设置@@session.sql_log_bin=0,那么Drop的行为就没有记录到binlog,所以Slave的日志表就会被保留。

模拟环境如下,

mysql>show tables

+---------------------------------+

select sum(count) from (

--一级

select count(*) as count from table_name where pid= 'id'

union all

--二级

select count(*) as count from table_name t1

inner join table_name t2

on t1.pid = t2.id

where t2.pid= 'id'

union all

--三级

select count(*) as count from table_name t1

inner join (

select id,pid from table_name t1

inner join table_name t2

on t1.pid = t2.id

where t2.pid= 'id'

) t2 on t1.pid = t2.id

)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5908473.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-07
下一篇 2023-03-07

发表评论

登录后才能评论

评论列表(0条)

保存