V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
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 · 2015-03-18 22:57:01 +08:00 · 4277 次点击
    这是一个创建于 3541 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    取一个数的模就可以把整数集hash到这个模以内。
    你把id取了10的模,得到0-9所以是10张表。
    那么如果你把id取37的模,得到0-36,所以就是37张表。
    同理上面说的,模100,就能得到按照末尾2位分表的100张表了。
    znoodl
        20
    znoodl  
       2015-03-21 20:20:31 +08:00
    qq是按活跃频率划分的
    picasso250
        21
    picasso250  
       2015-03-22 18:31:44 +08:00
    @tanteng 楼主你不懂是可以的。但理直气壮的无知就不好了。
    你已经不懂了,为何不谦虚一点呢?
    tanteng
        22
    tanteng  
    OP
       2015-03-26 13:38:14 +08:00
    @picasso250 呵呵,我不是在问吗,愿意回答,愿意教我的就回复好了,觉得问题简单幼稚的就路过好了,我也没有理直气壮。请搞清楚一点再说!没有问题是简单的,即使我提的简单的问题,你也可以扩展,提的问题不一定是问题本身,有时候提出来是大家讨论这个话题。
    tanteng
        23
    tanteng  
    OP
       2015-03-26 13:41:38 +08:00
    @msg7086 感谢回答,对,取模不一定是10张表。我看到的项目分表都是10张表,成了这种印象了,哈哈。
    tanteng
        24
    tanteng  
    OP
       2015-03-26 13:42:15 +08:00
    @picasso250 请教一下QQ会员表,应该怎么存放呢?谢谢赐教!不知道楼上的回答谁的回答你觉得ok
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5444 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 07:30 · PVG 15:30 · LAX 23:30 · JFK 02:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.