php+mysql分库分表的哈希(hash)算法
2010-12-16 17:04
363 查看
php+mysql分库分表的哈希(hash)算法:
我们在实际开发的时候,难免会遇到大访问量的问题,一个表中的数据就可以到百万甚至千万级的数据,这样一来数据库的压力会比较大,我们通常的做法就是给数据库分表来减轻数据库的压力,下面是用php写的一个分库分表的算法,需要的朋友可以参考一下:
<?php
function calc_hash_db($u, $s = 4){
$h = sprintf("%u", crc32($u));
$h1 = intval(fmod($h, $s));
return $h1;
}
for($i=1;$i< 100;$i++){
echo calc_hash_db($i);
echo "<br>";
}
function calc_hash_tbl($u, $n = 256, $m = 16){
$h = sprintf("%u", crc32($u));
$h1 = intval($h / $n);
$h2 = $h1 % $n;
$h3 = base_convert($h2, 10, $m);
$h4 = sprintf("%02s", $h3);
return $h4;
}
?>
本文来自: IT知道网(http://www.itwis.com) 详细出处参考:http://www.itwis.com/html/php/phpskill/20100128/7325.html
我们在实际开发的时候,难免会遇到大访问量的问题,一个表中的数据就可以到百万甚至千万级的数据,这样一来数据库的压力会比较大,我们通常的做法就是给数据库分表来减轻数据库的压力,下面是用php写的一个分库分表的算法,需要的朋友可以参考一下:
<?php
function calc_hash_db($u, $s = 4){
$h = sprintf("%u", crc32($u));
$h1 = intval(fmod($h, $s));
return $h1;
}
for($i=1;$i< 100;$i++){
echo calc_hash_db($i);
echo "<br>";
}
function calc_hash_tbl($u, $n = 256, $m = 16){
$h = sprintf("%u", crc32($u));
$h1 = intval($h / $n);
$h2 = $h1 % $n;
$h3 = base_convert($h2, 10, $m);
$h4 = sprintf("%02s", $h3);
return $h4;
}
?>
本文来自: IT知道网(http://www.itwis.com) 详细出处参考:http://www.itwis.com/html/php/phpskill/20100128/7325.html
相关文章推荐
- php+mysql分库分表的哈希(hash)算法
- 从PHP的Hash(哈希)算法开始
- libmemcached一致性hash算法详解(1)----php-memcached客户端一致性哈希与crc算法共用产生的bug分析
- 简单易懂讲解simhash算法 hash 哈希
- 哈希Hash 算法
- 简单易懂讲解simhash算法 hash 哈希
- php 基础算法(用*表示金字塔)通过hash 比較两个数组同样的数
- [php]对服务器进行一致性hash分布算法
- PHP 实现 一致性哈希 算法(转的)
- 哈希(Hash)算法
- 哈希(hash)算法的学习(一)
- 哈希(hash)算法的学习(二)
- 搜索引擎中缓存(cache)用到的哈希(hash)算法
- PHP实现的服务器一致性hash分布算法示例
- 哈希(hash)算法
- BKDRHash 算法 php 版本( 可用于 字符串 hash 为int 转)
- c#的哈希(hash)算法解析
- 对字符串进行哈希的算法,hash_func
- C# 中使用 MD5 算法计算 hash (哈希)值的四种方法
- Redis + php 使用hash(哈希) ,zset(有序集合)实例