原设计中a表中有两个字段r1、r2,分别对应b表中的id,也就是说两个表是一对二的关系
a表数据量约几十万条记录,
请帮忙分析一下是用现有方案好呢还是将这两个字段的数据放到子表里好呢?r1、r2均可能为空
主要考虑查询的优化问题
方案1查询时需要 r1 = 'aa' OR r2 = 'aa'
方案2查询时需要做表联接
a表数据量约几十万条记录,
请帮忙分析一下是用现有方案好呢还是将这两个字段的数据放到子表里好呢?r1、r2均可能为空
主要考虑查询的优化问题
方案1查询时需要 r1 = 'aa' OR r2 = 'aa'
方案2查询时需要做表联接
还有一个问题,现在想做个统计,这个SQL是否有其它方式进行优化?
SELECT aa.r,count(*)
FROM
(
SELECT a.id,a.r1 AS r FROM a
UNION
SELECT a.id,a.r2 AS r FROM a
) aa
SELECT aa.r,count(*)
FROM
(
SELECT a.id,a.r1 AS r FROM a
UNION
SELECT a.id,a.r2 AS r FROM a
) aa
GROUP BY aa.r
oracle已经提供了子表作为字段的功能,为何不用子表呢?