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

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

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

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

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