这两种查询方式那种查询方式返回结果更快?
有三个表,第一个表是部门分类表,第二个表是人员资料表,第三个表是就餐明细表。
第一个表主要字段是:部门编号(主键)、部门名称
第二个表主要字段是:人员编号(主键)、部门编号(外键)、部门名称
第三个表主要字段是:人员编号、就餐时间、收费机号、消费金额、余额、部门编号、部门名称
第三个表是按人员编号、就餐时间、收费机号三个字段联合主键的。
如果要查询部门就餐汇总,有两种查询方法:
第一种:用前两个表的资料更新第三个表,然后直接用第三个表汇总查询
select 部门名称,count(*)
from 就餐明细表
group by 部门名称
第二种:使用三个表链接,然后根据第一个表的就餐编号汇总查询
select abc.部门编号,count(*)
from 部门分类表 abc
left join 人员资料表 abd
on abc.部门编号 = abd.部门编号
left join 就餐明细表 abe
on abd.人员编号 = abe.人员编号
group by abc.部门编号
请问以上两种方式,在数据量大的情况下(就餐记录上10w条以上),那种返回结果更快
------解决方案--------------------如果是单看两句sql肯定是前者快.如果有业务绑定肯定是后者好咯.
------解决方案--------------------冗余设计为什么每次汇总还要更新部门数据?
如果需要更新肯定第二种快,这样冗余的字段就根本没必要了
------解决方案--------------------第二种吧 理由:不用根据第一个和第二表更新而更新````
------解决方案--------------------从查询效率来说.地一种比较快.
你可以计算两者的时间,对比一下.