group表,字段有:group_id,parent_group_id(0表示是根节点),group_name...另一个表report:report_id,group_id,root_group_id...情况一:mysql里建一个函数get_root_group_id(group_i...
group 表,字段有:
group_id, parent_group_id(0表示是根节点),group_name ...
另一个表 report:
report_id, group_id, root_group_id ...
情况一:
mysql里建一个函数 get_root_group_id(group_id)
在
向report表插入数据的时候,INSERT INTO `report` (group_id, root_group_id) SELECT
a.group_id, get_root_group_id(a.group_id) FROM tablexxx WHERE xxx
情况二:
php代码里有类似以下代码
...
foreach($allGroups() as $group){
$agent_group_id = $group['group_id'];
$root_group_id = $group['root_group_id'];
$this->db->query("UPDATE `report` SET root_group_id = {$root_group_id} WHERE AgentGroup = {$agent_group_id}");
}
...
情况二里不考虑php消耗的资源,就单从mysql那边的效率来看,是情况二这样直接更新效率高,还是情况一那样效率高?
一定是直接更新快,没错吧!!!!!!!!!我觉得没错
我的意思是,就算mysql里get_root_group_id(group_id)这个方法的实现效率很高,但但从调用上来讲,insert的时候,如果有10000条数据,就调用了10000次,本身效率就不高了,对吧?
展开