一个技术问题和大家交流一下,求高手解答:
有一个需求,目前想到用数据库表来保存,数据量较大一天的数据量在1千万左右复合主键
time(bigint) + key1(VARCHAR) + key2 (VARCHAR) +key3(INT) + key4(BIGINT) 以上这些构成复成主键字段+其它指标字段
按时间保存,一天的数据量在一千万左右,要求保存三个月左右的历史数据,现在担心数据量是否太大,而导致后面查询无法进行。按90天计,大概9亿条数据左右。后面业务可能需要进行sum求和之类的耗时操作以上的数据初步想用数据库表保存,但不限于用表保存,请大家帮忙看看如何保存会比较好。
有一个需求,目前想到用数据库表来保存,数据量较大一天的数据量在1千万左右复合主键
time(bigint) + key1(VARCHAR) + key2 (VARCHAR) +key3(INT) + key4(BIGINT) 以上这些构成复成主键字段+其它指标字段
按时间保存,一天的数据量在一千万左右,要求保存三个月左右的历史数据,现在担心数据量是否太大,而导致后面查询无法进行。按90天计,大概9亿条数据左右。后面业务可能需要进行sum求和之类的耗时操作以上的数据初步想用数据库表保存,但不限于用表保存,请大家帮忙看看如何保存会比较好。
解决方案 »
- 如何找实习啊?前辈们给点经验啊。
- 环境构建紧急求救:安装OracleAS的时候,如何将OracleAS和OracleAS Metadata Repository DB 分别安装在不同的服务器上?
- 日志如何还原某个时间点的数据库
- 连接names失败:ORA-12637: 包接收失败
- Creat Trigger 问题
- 怎么得到oracle的所有数据类型
- oracle9.i安装问题,在线等!
- oracle的帮助系统做的不如sql server
- 我为什么无法进入企业管理器
- 序号自增的问题
- [设计问题] 求这方面好的解决方案。
- vmware2.02+oraclg10g RAC+linux5.1虚拟机自动关机的问题
关键看你的需求如何,比如:你说要sum,按照什么条件sum?
用的什么库?除了用表保存,你有更好的选择吗?
可以考虑rang(月)-rang(天)复合分区,这样利用分区消除的话,就相当于直接操作一天的数据了。
如果只有1个时间字段的话,可以考虑虚拟列。
time保存的是long时间戳
但time是每5分钟保存一条的,以天为分区是否合适?
后面可能还有group by 操作,这个能行得通吗?
时间粒度如何确定比较好?
例如:SQL条件是什么,条件的时间跨度是多少等。
像楼主说的,1000万条数据分组很慢,关键看慢在了哪里。