数据库设计问题,是多表UNION ALL排序还是全部放在一个表,效率区别大吗
各种原因,一个系统 本来 消费记录、充值记录、赔付记录等顾客资金相关的记录 分别用不同的表 存放,其中各个表有一部分字段含义和数据类型是一致的 ,还有一部分按不同的业务有其特殊的字段记录相关数据。
现在客户要求查询每个消费者的账户资金流水情况(按操作时间),现在有两种方案:
1.使用union all
with t as(
select dingdanid,xianjin,weixin ,shijian from 表A where 条件
union all
select dingdanid,xianjin,weixin,shijian from 表B where 条件
)
select top 10 * from t order by shijian;
2.新建一张表 ,重写代码 把相关操作记录全部放在一张新表中 ,并考虑原来各表 不同字段(即把不同字段 全部加到新表中),某些业务用不到的字段 空那里 保证各表最大化记录数据。
其中 需要按条件 查询,并按时间等字段进行排序查询显示出来 记录显示 还要分页到客户端显示
请问 这两种方式效率相差大吗?