• 数据表的拆分算法


    public function getTable( $uid ) {
     return "user_" . sprintf( "%04d", ($uid >> 20) );
    }
    /**
     * 根据UID分表算法
     * 
     * @param int $uid  //用户ID
     * @param int $bit    //表后缀保留几位
     * @param int $seed //向右移动位数
     */
    function getTable( $uid , $bit , $seed ){
      return "user_" . sprintf( "%0{$bit}d" , ($uid >> $seed) );
    }

      这里,我们将uid向右移动20位,这样我们就可以把大约前100万的用户数据放在第一个表user_0000,第二个100万的用户数据放在第二个表user_0001中,这样一直下去,如果我们的用户越来越多,直接添加用户表就行了。由于我们保留的表后缀是四位,这里我们可以添加1万张用户表,即user_0000,user_0001 ...... user_9999。一万张表,每张表100万数据,我们可以存100亿条用户记录。当然,如果你的用户数据比这还多,也不要紧,你只要改变保留表后缀来增加可以扩展的表就行了,如如果有1000亿条数据,每个表存100万,那么你需要10万张表,我们只要保留表后缀为6位即可。

      转:http://kb.cnblogs.com/page/104180/

  • 相关阅读:
    Netty
    HttpClient 该知道一些概念
    Hibernate QBC 简单收集
    IUAP--单点登录
    js图片压缩和上传并显示
    vue移动端项目
    js自定义滚动条
    mysql5.7以上版本安装
    学习webpack
    学习es6
  • 原文地址:https://www.cnblogs.com/yimiao/p/3334927.html
Copyright © 2020-2023  润新知