mysql 水平分表

Posted 奔跑的小猪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
        $table_name = ‘user_‘.$hash;             //获取 表名

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

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

        echo $table_name;
    }

 

以上是关于mysql 水平分表的主要内容,如果未能解决你的问题,请参考以下文章

Mysql之分库分表及中间件

MySQL:要水平分表 吗?

MySQL:要水平分表 吗?

mysql数据库的水平分表与垂直分表实例讲解

MySQL常见水平分表技术方案

浅谈mysql数据库分库分表那些事-亿级数据存储方案