每天增加4亿条数据,每条数据200字节,要快速插入数据和快速查询,数据要保持一年

单车架构师 发布于 2013/07/22 15:44
阅读 798
收藏 2
每天增加4亿条数据,每条数据200字节,要快速插入数据和快速查询,数据要保持一年,存储容量不需要考虑。
基于上次抛出该问题后得到大家很多良好的建议,我整理了大家的讨论,结合需求,我尝试验证了以下方案:
数据库:MySQL-5.6
操作系统:Windows2008 R2 Enterprise
存储引擎:MyIsam

根据数据的特征以客户ID(数字组成)后三位,进行分库,分表。
分10个库(倒数第三个字段),db0,db2,db3...db9,每个库分100张表(tbl_0,tbl_1...tbl_99),每张表分100个区,分区字段为入库时间(通过函数转化为一年中第几天)。
比如:500201客户在2013-07-02这天产生了一条数据,则会保存到db1,tbl_0这张表,并存在该表的第55个分区中(假设2013-07-02在第55分区)。

现在发现有一些问题:MyIasm表在总数据超过3000W时,查询速度下降很多,即使我查的是同一个分区,索引也用上了还是在十几秒左右。
当单表数据量大(超过3000W时),插入数据的速度也下降了很多。我是采用批量插入,一次100条。
加载中
0
kiwivip
kiwivip
有测试过redis么~
单车架构师
单车架构师
没有。
0
吐槽的达达仔
吐槽的达达仔
建一个缓存的集群,然后再做个消息队列,这样的数据量不能单靠MYSQL了~~
吐槽的达达仔
吐槽的达达仔
@Colen 很多公司都用这种架构的,三言两语将不清楚。举例,就是建一个memcache集群,把插入数据都放到里面去,然后建一个消息队列,读取memcahce的数据,往mysql里面插入。分库分表策略虽好,但是非常不好管理。可以试试mongoDB啥的。。
单车架构师
单车架构师
能不能详细一些?
0
wankaiming
wankaiming
可以适当适用nosql数据库,这里有个适用场景对比 http://blog.jobbole.com/1344/,个人觉得使用CouchDB应该可以.
返回顶部
顶部