大家讨论下 QQ 会员表该如何进行分表呢??

2015-03-18 22:57:01 +08:00
 tanteng

mysql经常用到分表,一般是把id取模分成10张表,那么QQ会员表怎么分表呢?QQ会员几亿,分10张表,每张表的数据量还是很大啊,大家说说思路。

当然不一定是mysql数据库,重点不在于用什么数据库,而是如何分表。

4270 次点击
所在节点    MySQL
24 条回复
yangqi
2015-03-18 22:59:42 +08:00
这么大数据量肯定是分库啊,分表已经没用了
frankzeng
2015-03-18 23:23:35 +08:00
真正逻辑后台是分机器,不同的QQ号会分配到不同的机器上处理的,例如一台处理1000万个号,100台机器刚刚好10亿。然后要放号了直接加机器,修改配置。如果只是放点东西就可以分表,同样道理,分100张表,也可以是同一张表然后分区。
wy315700
2015-03-18 23:45:41 +08:00
一致性哈希
dong3580
2015-03-19 01:14:04 +08:00
@frankzeng
那要测试,是不是还得部署一百台测试机呢?
Septembers
2015-03-19 01:34:54 +08:00
PgSQL 单表 15亿 无须分区 毫无压力
mhycy
2015-03-19 09:04:49 +08:00
纯数字无前导0的QQ号本身就是可以用来做索引,分不分无所谓,分机器应对流量才是关键
fising
2015-03-19 09:27:46 +08:00
先不说QQ如何分表分库。

楼主一句“QQ会员几亿,分10张表,每张表的数据量还是很大啊”,也是让人醉了。

难道分表就是“分10张表”的简称?
cheng007
2015-03-19 10:07:35 +08:00
分表,分库已经不能解决腾讯的问题了。
frankzeng
2015-03-19 12:56:57 +08:00
@dong3580 不会,只需要一台就可以的了,因为只是号码不一样而已
mathgl
2015-03-19 19:28:43 +08:00
@Septembers 有几个索引?我最大试过单表4亿,一主键,一索引。查询很不错。
Septembers
2015-03-19 20:23:22 +08:00
@mathgl 2个Hash索引
tanteng
2015-03-19 20:59:43 +08:00
@fising 一般按id号取模就是0——9十张表,还可以怎么分,我就是要问这个
zuroyu
2015-03-19 21:19:06 +08:00
方式多的很,不一定要取模,按号段分也很正常
msg7086
2015-03-19 22:43:25 +08:00
@tanteng 难道取模就是取10的模的简称?
Jaylee
2015-03-19 23:26:56 +08:00
@tanteng 楼主水平太low 该涨涨知识
beordle
2015-03-20 09:38:24 +08:00
@tanteng 感觉楼主以后还是事前多思考思考,这种问题实在不该发问。。
tanteng
2015-03-21 00:17:51 +08:00
@beordle 你觉得这个问题很幼稚很简单吗
beordle
2015-03-21 12:06:47 +08:00
@tanteng 网上有很多架构分享的文章楼主可以读一读 类似 取余 分机器 分表 这样子的~

不过我想不通的是 楼主为何不回复 @msg7086 反而回复我呢 您应该问的是这个问题啊?
msg7086
2015-03-21 17:11:20 +08:00
既然楼主无视了我,那我就继续说下去吧(?)

取一个数的模就可以把整数集hash到这个模以内。
你把id取了10的模,得到0-9所以是10张表。
那么如果你把id取37的模,得到0-36,所以就是37张表。
同理上面说的,模100,就能得到按照末尾2位分表的100张表了。
znoodl
2015-03-21 20:20:31 +08:00
qq是按活跃频率划分的

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

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

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

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

© 2021 V2EX