千万级数据的表应该怎么设计分表规则?

2015-05-26 14:48:12 +08:00
 justlikemaki

最近在和同事一起创业,是移动互联网的项目。现在还是设计初期,考虑到后期可能的用户增长,如果用户数达到了千万级,对一张表进行查询肯定会慢,但是要分表可能会有其它问题。我考虑的分表,如果是按月份分,后期的数据一个月内可能就会达到千万级,那这样分就没什么意义了。如果是先创建好所有的分表,按照平均的规则写入到各个表中,查询的时候就不知道怎么查了。特地来这里问问各位,遇到这种问题应该怎么解决呢?

1784 次点击
所在节点    数据库
39 条回复
willvvvv
2015-05-26 14:58:51 +08:00
具体的业务场景描述一下
moro
2015-05-26 15:01:09 +08:00
有个标准,就是可以很容易做到水平扩展。
Septembers
2015-05-26 15:04:58 +08:00
数据规模不是问题 表结构设计合理性 才是大问题
数据规模上来啦无非就是 分库 分表 主写从读 集群化
wy315700
2015-05-26 15:06:10 +08:00
先上线吧 我觉得你们想多了,
justlikemaki
2015-05-26 15:06:22 +08:00
@willvvvv 主要是对用户的查询这方面,考虑到后期用户量大,一个登录可能就会很慢,连表的查询也会慢,所以寻求分表的规则或者是标准。
Septembers
2015-05-26 15:06:39 +08:00
数据库选型也很重要 我PgSQL单表几十亿都不是问题
wshcdr
2015-05-26 15:08:13 +08:00
@wy315700 说得对
justlikemaki
2015-05-26 15:08:59 +08:00
@Septembers 就是说可以先用一张表,数据上来了再分开?我现在的主要问题就不知道到底该怎么分表啊。。。
justlikemaki
2015-05-26 15:09:43 +08:00
@Septembers 我也是打算用pgsql的。
wy315700
2015-05-26 15:10:12 +08:00
@justlikemaki
首先mysql,INNODB的话配上大内存,TB级别的数据是没有问题的。

然后到了那个数据量,你们自然会有办法解决这个问题了。
ifconfig
2015-05-26 15:10:59 +08:00
mysql5.1之后有分区技术,业务都写好了再拆表岂不是要重构代码,而且楼上说的数据库选型也很重要 PgSQL单表几十亿都不是问题
Septembers
2015-05-26 15:13:35 +08:00
如果用户真发展到那个规模了 你也不缺钱请DBA
JoeShu
2015-05-26 15:33:22 +08:00
想太多,过度优化是万恶,技术是可以迭代的,等用户达到那个量级再优化。
huijiewei
2015-05-26 15:45:05 +08:00
噗。还没开始你就想着千万级的优化? 想太多了啊
em70
2015-05-26 15:49:02 +08:00
大多数失败的项目,都是败在只有100人的考虑1亿用户的事情,互联网项目需要小步快跑
vinceguo
2015-05-26 16:00:25 +08:00
数据量这么大为什么还要用mysql?
直接上hadoop, hive, hbase, spark, 随便玩.
gamexg
2015-05-26 16:06:06 +08:00
搭车问一个问题,类似与监控宝ping日志怎么保存比较好?
直接存数据库是不是太坑了?

1000站点 * (24*60)/5 = 288000。
一天288000条日志,1个月8640000条。

直接存文本文件?查询比较麻烦些...
huobazi
2015-05-26 16:08:34 +08:00
等你一个月千万级时你的钱肯定够买 100 个 DBA 帮你搞定这事情了
publicID001
2015-05-26 16:10:17 +08:00
@gamexg 不坑
mhycy
2015-05-26 16:11:36 +08:00
@gamexg
有样东西叫NoSQL...
这是一个极其符合NoSQL环境的需求...
试试mongodb如何?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/193826

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX