2 xuyejiayou1234 xuyejiayou1234 于 2013.10.22 10:29 提问

利用MySQL数据库如何解决大数据量存储问题?
各位高手您们好,我最近接手公司里一个比较棘手的问题,关于如何利用MySQL存储大数据量的问题,主要是数据库中的两张历史数据表,一张模拟量历史数据和一张开关量历史数据表,这两张表字段设计的很简单(OrderNo,Value,DataTime)。基本上每张表每天可以增加几千万条数据,我想问如何存储数据才能不影响检索速度呢?需不需要换oracle数据库呢?因为我是数据库方面的新手,希望可以说的详细一点,万分感谢!!!

1个回答

ygycomon
ygycomon   Rxr 2013.10.22 14:06
已采纳

查询业务是怎么样的?

一般这样大增量的需求,都是根据时间来做分区

xuyejiayou1234
xuyejiayou1234 不过我点了采纳啦!
大约 4 年之前 回复
xuyejiayou1234
xuyejiayou1234 不好意思~~~我声望不够,点不了赞,汗!
大约 4 年之前 回复
ygycomon
ygycomon 我晕,在我回答的左边,有个投票的上箭头
大约 4 年之前 回复
xuyejiayou1234
xuyejiayou1234 where点赞?
大约 4 年之前 回复
ygycomon
ygycomon glgg, 请点赞
大约 4 年之前 回复
xuyejiayou1234
xuyejiayou1234 非常感谢您的回答,您说的利用Hadoop的方法,我之前没有涉及过,公司的项目时间比较紧,可能从头学不太现实,我暂定用分表分区的方式解决。
大约 4 年之前 回复
ygycomon
ygycomon 结论:1.分表分区的思路是没错的;2.业内一般的做法:历史记录以文件形式存在,存数据库也可以,现在更流行的是用大数据Hadoop做分布式的解决访问,这些数据用作离线的数据分析,不用在实时查询上,每天定时离线数据分析,然后算出聚合的数据,比如源数据是每分每秒做了什么事情,聚合数据是每天做了什么事情,这样聚合的数据量小很多,数据库压力不会那么大,展示也更加合理
大约 4 年之前 回复
xuyejiayou1234
xuyejiayou1234 会查询某段时间的的数据,而且查询的频率会很高,这个数据库是要用到目前在做的专家诊断系统上的,所以要经常查询历史数据进行分析。
大约 4 年之前 回复
ygycomon
ygycomon 大数据,分表分区的思路是没问题的,只是你这里1是数据量大,效果可能不好;2是手动分表的话要动业务层代码这样写起来会麻烦,特别的是遗留系统,要改代码就更麻烦
大约 4 年之前 回复
ygycomon
ygycomon 看你什么业务了,你的查询业务难道需要去查这些精确到每一条的历史么?一般都不需要的。2000w的数据,人查了干啥?
大约 4 年之前 回复
xuyejiayou1234
xuyejiayou1234 您说的聚合是什么意思呢?您说的对,这两张表就是存储历史数据的,我是数据库方面的新手,很多概念搞不清楚,我现在想采取按天分表后,再按小时分区的办法,您觉得可行吗?
大约 4 年之前 回复
ygycomon
ygycomon google mysql 分区,资料一大堆,这个不细说。数据库的实现上,分区相当于把原来存储在一个文件的数据按照你分区的规则分很多个文件来存储。不过你这个增量太大了,一张表2000W查起来费劲,索引的效果也不好。我看你这两个表应该属于是存储历史记录的吧,如果不需要这么细粒度的数据,最好是经过一次聚合之后再存数据库
大约 4 年之前 回复
xuyejiayou1234
xuyejiayou1234 您的意思我没听懂,每天如果增加2000W,按日期分区后单表怎么还是2000W呢?还有,您觉得是按天分区吗?要不要用到分表呢?
大约 4 年之前 回复
ygycomon
ygycomon 不过你这个需求的量也太大了点,一天2000w日志还差不多,表的话确实有点多,就算是按照日期分区之后单表2000w数据查起来也费劲,最好是可以根据业务做进一步的聚合,不要把原始数据放在数据库里做实时的数据源,不合适。
大约 4 年之前 回复
ygycomon
ygycomon 按时间来查就好说了啊,你就按照时间来做分区嘛。
大约 4 年之前 回复
xuyejiayou1234
xuyejiayou1234 一般是按照时间(DataTime)来查询的,查询某段时间的数据,可以说的详细一点吗?如何按时间分区呢?谢谢!!
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!