hash 分表

来源:互联网 发布:c语言入门免费书籍 编辑:程序博客网 时间:2024/05/23 11:22

当用户订单表  在电商网站存在时,流量大了,订单表势必会很大

那么分表就  来了


分表如何搞,我们 规划  比如订单分  100张表先玩,如果  100张暂时够用,那么我们搞一下  

/**

    @param $string 是分表的关键字  如用户uid

    @param $tab_count 是要分多上张表  可以定义一个常量搞

    @return  string   数据表名的一个  拼接字符缀

*/

function getStringHash($string, $tab_count)  

        $unsign = sprintf('%u', crc32($string));  
        if ($unsign > 2147483647)  // sprintf u for 64 & 32 bit  
        {  
            $unsign -= 4294967296;  
        }  
        return abs($unsign) % $tab_count;  
}

for($i=0;$i<100000;$i++){
    $arr[]= getStringHash($i,100);
}
echo getStringHash(10,100);
var_dump(array_unique($arr));

每次  传入  a   必然对应   唯一不变的  b

原创粉丝点击