关于超大数据量的,应该怎么设计表结构,我就随便想想。。问问

关于超大数据量的,应该怎么设计表结构,我就随便想想。。问问

问题描述:

类似于移动电话、或者是工行存蓄这样超级庞大的数据量流水,一般都会怎么设计表结构的呢。
是每年建一个表啊,还是按省市建表啊。还是每省+每年建立表啊,还是用oracle11带的分区啊,
list+range,按省先list,然后再按照年再分区啊,我是不懂,好奇,想知道,大概怎么设计比较合理点,
以前的orale或者sysbase、informix之类的数据库应该是没有什么分区的概念的吧,会怎么设计的呢。
如果是分表的话,那跨域跨年查询是不是很麻烦啊?啊啊啊啊啊啊。。。。
不要凭想象啊。光想我也会一点,有没有哪位大仙有实际经验的给解惑解惑。。

另外再问一个,如果是建立分区表的话,但是所有的分区都使用同一个数据库空间?
会不会达不到分区的效果,我试验了下,好像是这样,分区了,用的一个表空间,好像速度没什么提升。??

你的问题需要考虑很多因素,说几点个人看法:
1.基础表的数据量大,查询的时候尽量避免原表扫描,可以考虑使用中间表或者物化视图,比如你要查询每年表中的用户数,可以把每一月统计的结果放在中间表,然后累加,
思想就是把大的查询拆分为若干小的查询。
2.在夜间执行一些job,生成中间表的数据,方便第2天查询。
3.如果表中数据特别多,可以考虑水平切分表,比如表中有2000w条记录,则拆分成两个结构一样的表,每一个标存在1000w条数据。
4.索引的选择。在设计表的时候就要考虑是否需要索引,不要等数据量多了再考虑。
5.还有表分区需要考虑~~~~

我知道分区表一般都建在不同的表空间,使用多个硬盘,提高硬盘的io传输