› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
tanteng
V2EX  ›  MySQL

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

  •  
  •   tanteng · Mar 18, 2015 · 5173 views
    This topic created in 4259 days ago, the information mentioned may be changed or developed.

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

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

    24 replies  •  2015-03-26 13:42:15 +08:00
    yangqi
    yangqi
    Mar 18, 2015
    1
    这么大数据量肯定是分库啊,分表已经没用了
    frankzeng
    frankzeng
    Mar 18, 2015
    2
    真正逻辑后台是分机器,不同的QQ号会分配到不同的机器上处理的,例如一台处理1000万个号,100台机器刚刚好10亿。然后要放号了直接加机器,修改配置。如果只是放点东西就可以分表,同样道理,分100张表,也可以是同一张表然后分区。
    wy315700
    wy315700
    Mar 18, 2015
    3
    一致性哈希
    dong3580
    dong3580
    Mar 19, 2015 via Android
    4
    @frankzeng
    那要测试,是不是还得部署一百台测试机呢?
    Septembers
    Septembers
    Mar 19, 2015
    5
    PgSQL 单表 15亿 无须分区 毫无压力
    mhycy
    mhycy
    Mar 19, 2015
    6
    纯数字无前导0的QQ号本身就是可以用来做索引,分不分无所谓,分机器应对流量才是关键
    fising
    fising
    Mar 19, 2015
    7
    先不说QQ如何分表分库。

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

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

    不过我想不通的是 楼主为何不回复 @msg7086 反而回复我呢 您应该问的是这个问题啊?
    msg7086
    msg7086
    Mar 21, 2015❤️1
    19
    既然楼主无视了我,那我就继续说下去吧(?)

    取一个数的模就可以把整数集hash到这个模以内。
    你把id取了10的模,得到0-9所以是10张表。
    那么如果你把id取37的模,得到0-36,所以就是37张表。
    同理上面说的,模100,就能得到按照末尾2位分表的100张表了。
    znoodl
    znoodl
    Mar 21, 2015
    20
    qq是按活跃频率划分的
    picasso250
    picasso250
    Mar 22, 2015
    21
    @tanteng 楼主你不懂是可以的。但理直气壮的无知就不好了。
    你已经不懂了,为何不谦虚一点呢?
    tanteng
    tanteng
    OP
    Mar 26, 2015
    22
    @picasso250 呵呵,我不是在问吗,愿意回答,愿意教我的就回复好了,觉得问题简单幼稚的就路过好了,我也没有理直气壮。请搞清楚一点再说!没有问题是简单的,即使我提的简单的问题,你也可以扩展,提的问题不一定是问题本身,有时候提出来是大家讨论这个话题。
    tanteng
    tanteng
    OP
    Mar 26, 2015
    23
    @msg7086 感谢回答,对,取模不一定是10张表。我看到的项目分表都是10张表,成了这种印象了,哈哈。
    tanteng
    tanteng
    OP
    Mar 26, 2015
    24
    @picasso250 请教一下QQ会员表,应该怎么存放呢?谢谢赐教!不知道楼上的回答谁的回答你觉得ok
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2042 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 04:14 · PVG 12:14 · LAX 20:14 · JFK 23:14
    ♥ Do have faith in what you're doing.