我有一张日志表,每天3000W数据,MySQL数据库,如何分表分区?

单车架构师 发布于 2013/05/07 17:01
阅读 12K+
收藏 10
我有一张日志表,每天3000W数据,需要保持一年,用的是MySQL数据库,我想分100表(根据客户ID后两位数字),每个表再分10个区,但这样的数据量还是很大,大家有什么建议?

以下是问题补充:

@单车架构师:补充:该日志表还用于查询,并且查询场景多是用户ID加日期。 (2013/05/08 12:41)
加载中
1
酒逍遥
酒逍遥

每天一张表,表明用 年月日 

每张表分24个区  每个小时的数据分1个区.

平均下来1个表的1个分区里 也就100多w条数据.

这种日志要查询时基本都是按日期检索.这么分表分区之后检索速度应该会快不少.

日期条件够精确的话,mysql 实际上只需要扫描某个表的几个分区数百万数据就可以了.

加上索引的话速度应该不至于慢到不能接受.


pfdoschina
pfdoschina
感觉这样比较靠谱
1
老大做IT
老大做IT

引用来自“酒逍遥”的答案

每天一张表,表明用 年月日 

每张表分24个区  每个小时的数据分1个区.

平均下来1个表的1个分区里 也就100多w条数据.

这种日志要查询时基本都是按日期检索.这么分表分区之后检索速度应该会快不少.

日期条件够精确的话,mysql 实际上只需要扫描某个表的几个分区数百万数据就可以了.

加上索引的话速度应该不至于慢到不能接受.


这个应该是合理设计。

真实案例,我目前每天生产1000多万数据,每小时汇总插入一次,耗时也就1分钟左右。

数据再大的话就要考虑分区了。

mongodb如果之前没有用过,建议不要使用,做集群,有时候会挂掉,导致数据丢失。

如果使用过,可以考虑。

fzxu_05
fzxu_05
同意,没用过风险较大
0
我不叫大脸猫
我不叫大脸猫
分表+压缩存储
0
蟋蟀哥哥
蟋蟀哥哥
这种不适合用mysql了吧。。用nosql吧
fzxu_05
fzxu_05
我去,更不靠谱,还nosql,每天3000w,得吃多少内存
0
GSMLG
GSMLG
用archive表引擎, 每天一个表就行了
0
i-w
i-w
这要查询数据得多困难……
0
小白小霸王
小白小霸王
好多数据啊 那以后还要查询吗?还是用日期做规则分表吧 每天 每周?每月?
0
Duanjian
Duanjian
这个建议用mongodb    分布式的干活
0
萧尧
萧尧
每天一个表比较靠谱~~
返回顶部
顶部