码迷,mamicode.com
首页 > 数据库 > 详细

mysql 水平分表

时间:2018-12-26 11:43:37      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:hash   bst   算法   新建   uid   span   uniqid   user   生成   

新建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);
        $table_name = ‘user_‘.$hash;             //获取 表名

        $user[‘id‘]=$id;
        $user[‘age‘]=‘20‘;
        $user[‘name‘]=‘小猪_‘.time();

        db($table_name)->insert($user);      //插入数据库

        echo $table_name;
    }

 

mysql 水平分表

标签:hash   bst   算法   新建   uid   span   uniqid   user   生成   

原文地址:https://www.cnblogs.com/songxuan/p/10177867.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!