请问数据库的高手们,如下情况应该如何处理:
有一个表,数据可能会上千万条,我应该将所有的数据存在一个表中,还是建多个结构相同的表将数据分开存储呀?哪种方式数据的查询速度更快呢?希望高手们给予指点。
有一个表,数据可能会上千万条,我应该将所有的数据存在一个表中,还是建多个结构相同的表将数据分开存储呀?哪种方式数据的查询速度更快呢?希望高手们给予指点。
解决方案 »
- 如何快速判断T1表中是否存在T2表中的信息?
- Hibernate的多表查询
- 使用Merge的时候,如何知道更新了多少行,插入了多少行?
- request: set autotrace traceonly;response:Cannot SET AUTOTRACE ??? what is the matter?
- 怎麼找出兩個數據庫的結構差異
- 急! 急!!!!!!!!1
- 统计如下数据的sql怎么写
- Oracle中VARCHAR2定义问题
- 求一个SQL的逻辑实现
- oracle9i 中恢复 oracle10g 中用exp导出的dmp文件出错
- oralce问题。
- 求教,也是SQL语句。本人一直在线等,直到有结果
如果是该数据表仅仅是做日志LOG,很少有机回做大量数量的统计查询的话,建议使用多个表(每月一张,或是数据量更大,每天),我们做过的机场报文信息记录系统就是采用这种模式。
如果系统要做频繁的检索、查询,并且有是大跨度的,现在也没有很好的解决方式,有一种办法就是仍然采用上面的方式,不过查询起来就比较麻烦,建立一个UNION视图,做好查询优化,并做个batch在添加新表后更新视图。
如果数据量虽然大,但查询时的跨度并不大,可以采用一张表,该表独占一个tablespace,这个tablespace采用多个数据文件,平时只挂近期用到的数据文件,做大跨度查询时,才把需要的数据文件挂上。可能稍微好一点。
(1)若分开成多表,我们目前需要Union视图查询的情况很少,一般只查询一张表就可以了。
(2)但按照目前的设计,一下子可能会生成几百张表,表的数目很多,但每张表中的数据比较少。
(3)目前主要是考虑长时间的数据积累后出现大量数据的情况,短时间内数据不会很多。
我自己的想法是把所有数据放在放在一张表中,建好索引。这样数据的查询速度比多张表的查询应该不会差很多吧。
请sinosolo(solo)指点!