zoukankan      html  css  js  c++  java
  • mysql 水平分表

    新建10张表,user_0,user_1,...user_9,方法不可串用,采用hash或取余法,获取要操作的表名,取值用对应存值的方法

    1.hash取余法

    public function part_table(){
    
            $id=uniqid();                       //php生成唯一 uuid
            $str = crc32($id);                  //hash 算法转换
            $table_name = 'user_'.$str%10;      //取余获取 表名
    
            $user['id']=$id;
            $user['age']='20';
            $user['name']='小猪_'.time();
    
            db($table_name)->insert($user);      //插入数据库
    
            echo $table_name;
        }

    2.hash

    public function part_table(){
    
            $id=uniqid();                            //php生成唯一 uuid
            $str = crc32($id);                       //hash 算法转换
            $hash = substr($str, 0, 1);              // 32位 与64位操作 有差别
            $table_name = 'user_'.$hash;             //获取 表名
    
            $user['id']=$id;
            $user['age']='20';
            $user['name']='小猪_'.time();
    
            db($table_name)->insert($user);      //插入数据库
    
            echo $table_name;
        }
  • 相关阅读:
    快速幂算法
    素数筛
    数论知识点总结
    ABOUT MY NAME
    CF1043F Make It One
    树形DP
    魔兽世界联盟8.1主线任务
    模板std::mutex用法:
    【转】正确的提问方式
    第一个Python游戏窗口
  • 原文地址:https://www.cnblogs.com/songxuan/p/10177867.html
Copyright © 2011-2022 走看看