ORACLE数据库表设计,是该一张表放很多列,还是分成几张表每张表的列都比较少?

公司要做一个项目要设计一张表。表中存放的数据是ID号和这个ID号对应产品的测试数据,其中测试项目可能会很多,也可能会很少。现在两个表设计方案方案一:设计一张表,表设计的设... 公司要做一个项目要设计一张表。表中存放的数据是ID号和这个ID号对应产品的测试数据,其中测试项目可能会很多,也可能会很少。
现在两个表设计方案
方案一:设计一张表,表设计的设计很多列对应很多测试的项目(可能有200列左右)。
方案二:每个测试工站设计一张表,这样的话就有十张表,每个表20列左右。
我倾向于用方案一,在设计表的时候把PTCFREE参数预留的大一点。每个字段类型用VARCHAR2,这样的话,以后查询还是维护只针对一张表就好了。
其他同事倾向于方案二,认为分成多张表比较好,认为所有的测试工站去读写一张表和读写多张表效率会不一样,分成多张表处理效率上会很高。
请高手帮忙分析下是用一张表多列好还是多少张表少列比较好?
高分相送!
补充:这张表的数据量和并发都很高!数据量大该一个月会增加600W左右!
非常感谢大家的回答,可是我希望有一个比较详细的分析,为什么要用第二方案。
展开
 我来答
百度网友eafe715dc
2011-09-06 · TA获得超过1490个赞
知道小有建树答主
回答量:763
采纳率:50%
帮助的人:645万
展开全部
我认为第二个方案好点。你一张表的列太多了。这样子必然导致在执行操作的时候非常的慢。分成多个表的话会分担数据库的压力,读写都很快。
百万数据级的我做过。第一种方案的列数太多,导致表态庞大,读写都会很慢。第二种方案将表拆分,一方面在业务上做分割,另一方面读写速度确实会加快。
syht2000
高粉答主

2011-09-06 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
这个涉及到数据库范式和反范式的问题,要清楚你们的具体需求才行,但是一般来说,反范式只有在数据量比较大的时候才会考虑,我不知道你们的每个工站有多少数据量,如果数据量不大的话,一般按第三范式去设计数据库就行了,也就是方案二。
追问
我主键都只有一个,那就是ID号!只是测试项目比较多!分表和不分表都是符合三范式的!
追答
这种数据量的偶确实没做过,不过如果是这样的话,可能就需要进一步细化表从而进一步降低读写压力,除了用方案二之外,也可以考虑每个月建张表(每张表数据可能要做些冗余以尽量避免出现多表查询之类的情况),另外象表分区之类的优化可能也要用。如果涉及到复杂查询汇总的话,如果不是实时要求的话,可以在没有频繁读写操作的时候(比如凌晨)定时执行全部或者大部分的汇总工作。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
flyzhanglin
2011-09-06 · TA获得超过365个赞
知道小有建树答主
回答量:299
采纳率:100%
帮助的人:138万
展开全部
如果你的数据量如此之大,建议你还是选择方案二,否则当执行汇总查询时会严重影响性能。方案一的优点正如你所说的,但是不适合你提到的如此大的数据量。
更多追问追答
追问
能不能详细说明是为什么汇总查询会影响性能?我如果查一张表,那我只是对一张表的索引扫描然后输出结果,十张表的话那就要对十张表做连接查询啊?
追答
简单说,如果你希望知道表中有多少行,你就需要遍历整个表,像这么大数据量的表,遍历查询一次是需要消耗很大数据库资源的。另外你提到的索引,你不可能对表中所有列建立索引(如果真是这样,数据库又需要消耗很多资源来维护索引,反而会影响性能),这样当查询时,同样的,数据库需要遍历整个表,而不是简单的遍历索引就可以了事。这就好比是,手头上的一批工作,如果你把它分配给一个人做和没人分配一个工作去做,效率是不一样的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
82865052
2011-09-06
知道答主
回答量:14
采纳率:0%
帮助的人:8.4万
展开全部
如果是我的话 比较倾向于方案二,
因为你测试工站 不需要去涉及到别的工站的数据,
只有一张表的话,如果一个工站添加了数据,其他工站没有添加,那不是其他列都是空的。。
追问
列空的话我觉得没什么关系,如果是数据类型用VARCHAR2的话是不占用存储空间的!
列空的话我觉得没什么关系,如果是数据类型用VARCHAR2的话是不占用存储空间的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
淦琳溪l7
2011-09-11 · TA获得超过336个赞
知道答主
回答量:172
采纳率:0%
帮助的人:80.8万
展开全部
第二种吧老大,数据量大时,如果一张表,每次查询都要过滤一遍,每次都那么多,如果多张表,系统匹配时只匹配其中一张的一个字段,效率较高啊;如果数据量少,就无所谓了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式