ORACLE数据库表设计,是该一张表放很多列,还是分成几张表每张表的列都比较少?
公司要做一个项目要设计一张表。表中存放的数据是ID号和这个ID号对应产品的测试数据,其中测试项目可能会很多,也可能会很少。现在两个表设计方案方案一:设计一张表,表设计的设...
公司要做一个项目要设计一张表。表中存放的数据是ID号和这个ID号对应产品的测试数据,其中测试项目可能会很多,也可能会很少。
现在两个表设计方案
方案一:设计一张表,表设计的设计很多列对应很多测试的项目(可能有200列左右)。
方案二:每个测试工站设计一张表,这样的话就有十张表,每个表20列左右。
我倾向于用方案一,在设计表的时候把PTCFREE参数预留的大一点。每个字段类型用VARCHAR2,这样的话,以后查询还是维护只针对一张表就好了。
其他同事倾向于方案二,认为分成多张表比较好,认为所有的测试工站去读写一张表和读写多张表效率会不一样,分成多张表处理效率上会很高。
请高手帮忙分析下是用一张表多列好还是多少张表少列比较好?
高分相送!
补充:这张表的数据量和并发都很高!数据量大该一个月会增加600W左右!
非常感谢大家的回答,可是我希望有一个比较详细的分析,为什么要用第二方案。 展开
现在两个表设计方案
方案一:设计一张表,表设计的设计很多列对应很多测试的项目(可能有200列左右)。
方案二:每个测试工站设计一张表,这样的话就有十张表,每个表20列左右。
我倾向于用方案一,在设计表的时候把PTCFREE参数预留的大一点。每个字段类型用VARCHAR2,这样的话,以后查询还是维护只针对一张表就好了。
其他同事倾向于方案二,认为分成多张表比较好,认为所有的测试工站去读写一张表和读写多张表效率会不一样,分成多张表处理效率上会很高。
请高手帮忙分析下是用一张表多列好还是多少张表少列比较好?
高分相送!
补充:这张表的数据量和并发都很高!数据量大该一个月会增加600W左右!
非常感谢大家的回答,可是我希望有一个比较详细的分析,为什么要用第二方案。 展开
8个回答
展开全部
这个涉及到数据库范式和反范式的问题,要清楚你们的具体需求才行,但是一般来说,反范式只有在数据量比较大的时候才会考虑,我不知道你们的每个工站有多少数据量,如果数据量不大的话,一般按第三范式去设计数据库就行了,也就是方案二。
追问
我主键都只有一个,那就是ID号!只是测试项目比较多!分表和不分表都是符合三范式的!
追答
这种数据量的偶确实没做过,不过如果是这样的话,可能就需要进一步细化表从而进一步降低读写压力,除了用方案二之外,也可以考虑每个月建张表(每张表数据可能要做些冗余以尽量避免出现多表查询之类的情况),另外象表分区之类的优化可能也要用。如果涉及到复杂查询汇总的话,如果不是实时要求的话,可以在没有频繁读写操作的时候(比如凌晨)定时执行全部或者大部分的汇总工作。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你的数据量如此之大,建议你还是选择方案二,否则当执行汇总查询时会严重影响性能。方案一的优点正如你所说的,但是不适合你提到的如此大的数据量。
更多追问追答
追问
能不能详细说明是为什么汇总查询会影响性能?我如果查一张表,那我只是对一张表的索引扫描然后输出结果,十张表的话那就要对十张表做连接查询啊?
追答
简单说,如果你希望知道表中有多少行,你就需要遍历整个表,像这么大数据量的表,遍历查询一次是需要消耗很大数据库资源的。另外你提到的索引,你不可能对表中所有列建立索引(如果真是这样,数据库又需要消耗很多资源来维护索引,反而会影响性能),这样当查询时,同样的,数据库需要遍历整个表,而不是简单的遍历索引就可以了事。这就好比是,手头上的一批工作,如果你把它分配给一个人做和没人分配一个工作去做,效率是不一样的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是我的话 比较倾向于方案二,
因为你测试工站 不需要去涉及到别的工站的数据,
只有一张表的话,如果一个工站添加了数据,其他工站没有添加,那不是其他列都是空的。。
因为你测试工站 不需要去涉及到别的工站的数据,
只有一张表的话,如果一个工站添加了数据,其他工站没有添加,那不是其他列都是空的。。
追问
列空的话我觉得没什么关系,如果是数据类型用VARCHAR2的话是不占用存储空间的!
列空的话我觉得没什么关系,如果是数据类型用VARCHAR2的话是不占用存储空间的!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第二种吧老大,数据量大时,如果一张表,每次查询都要过滤一遍,每次都那么多,如果多张表,系统匹配时只匹配其中一张的一个字段,效率较高啊;如果数据量少,就无所谓了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |