首页 新闻 会员 周边 捐助

关于亿级数据库的设计方案

0
悬赏园豆:5 [已解决问题] 解决于 2013-12-05 13:52

这是个日志数据库,每天会产生几十万条数据,导致查询速度越来越慢,有什么好的解决方案

拖鞋王子的主页 拖鞋王子 | 初学一级 | 园豆:38
提问于:2013-12-03 11:30
< >
分享
最佳答案
0

第一种方案:

     按月建表,或者按日建表。看你的意思这个数据库主要是用来记录用户操作日志的。但是这样子对你的查询语句要求就比较高了。

第二种方案:

     根据业务简历快照表,存储一个月或者三个月的近期日志,然后其他数据简历日志归档表,存储历史数据。但是这些所有的表一定要分区,至少按月分区,甚至可以按日再做子分区。同时所有查询语句必须要用到分区。

 

对于大的数据,目前是个热点。一定要根据相应的数据库,应用到厂商提供的大数据解决方案中的优化方法。你的问题不是一个简单的设计就能完成的,需要你从表结构设计,数据存储结构,索引,分区,查询语句的游湖,逐级索引查新等多个大数据存储优化技术才能解决。而且对你的数据库的优化维护能力也提出了相应的要求。

 

祝好运!

收获园豆:5
bitbug | 菜鸟二级 |园豆:470 | 2013-12-03 14:16
其他回答(9)
0

这种,直接按月份横向分表吧。

幻天芒 | 园豆:37207 (高人七级) | 2013-12-03 11:46

我也像过这种方案,不知道还有没有更好的

支持(0) 反对(0) 拖鞋王子 | 园豆:38 (初学一级) | 2013-12-03 11:47

@拖鞋王子:看你日志的重要性了,可以考虑采用Nosql系列。 

支持(0) 反对(0) 幻天芒 | 园豆:37207 (高人七级) | 2013-12-03 13:46
0

日志直接写在日志文件中。txt文本中

angelshelter | 园豆:9914 (大侠五级) | 2013-12-03 11:50

我少说了一点,日志是在txt中的,但是为了方便查询,每天会挖出来存到数据库里

支持(0) 反对(0) 拖鞋王子 | 园豆:38 (初学一级) | 2013-12-03 11:52

@拖鞋王子: 日志一般都不看的吧,出错了才去看。

支持(0) 反对(0) angelshelter | 园豆:9914 (大侠五级) | 2013-12-03 11:53

@angelshelter: 不是错误日志,每天几十万条错误那还得了,记录的是用户的行为

支持(0) 反对(0) 拖鞋王子 | 园豆:38 (初学一级) | 2013-12-03 11:58
0

我们是用DataMarket来解决的,你参考下,或许能解决你的问题。

水晶途途 | 园豆:1443 (小虾三级) | 2013-12-03 11:51

没听过这个东东,有相关文章吗

支持(0) 反对(0) 拖鞋王子 | 园豆:38 (初学一级) | 2013-12-03 11:52
0

先优化索引

dudu | 园豆:29732 (高人七级) | 2013-12-03 13:54
0

如果就放在一个表中肯定是不行的,这个最起码也要分表的查(一天分一张表也是可以的)

日志的记录,考虑一下nosql,mongodb是个不错的选择。

chenping2008 | 园豆:9836 (大侠五级) | 2013-12-03 14:14
0

哈哈,最好的办法就是表分驱,按月来记录日志,这样更好些。

jerry-Tom | 园豆:4077 (老鸟四级) | 2013-12-03 14:52
0

 

采用分布式数据库也是考虑方向之一,查询在N机器上同时进行,是解决大数据库的最有效的方法,无论数据量多大,都在众神的掌控之中。我们有成熟的方案,需要可联系:0311-87024917 QQ:1561724180

 

LiuKaiFa | 园豆:1491 (小虾三级) | 2013-12-03 14:54
0

按天数将数据以xml的形式存入表中

雾静 | 园豆:561 (小虾三级) | 2013-12-03 20:35
0

日志一般不要记录在数据库,这个是一个常识.

如果你要记录,请用nosql

[秦时明月] | 园豆:738 (小虾三级) | 2013-12-04 09:42

不存数据库那要查询怎么办

支持(0) 反对(0) 拖鞋王子 | 园豆:38 (初学一级) | 2013-12-04 10:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册