比如用户表有1000万数据,系统的性能就会变得很慢。
function hashID($id, $max)
{
$md5 = md5($id);
$str1 = substr($md5, 0, 2);
$str2 = substr($md5, -2, 2);
$newStr = intval(intval($str1 . $str2, 16));
$hashID = $newStr % $max + 1;
return $hashID;
}
function calcHashDb($u, $s = 200){
$h = sprintf("%u", crc32($u));
$h1 = intval(fmod($h, $s));
return $h1;
}
$tIndex = calcHashDb("zhaoqhu",100);
var_dump($tIndex);
function getStringHash($string, $tabCount){
$unsign = sprintf('%u', crc32($string));
if ($unsign > 2147483647) // sprintf u for 64 & 32 bit
{
$unsign -= 4294967296;
}
return abs($unsign) % $tabCount;
//return abs($unsign) % $tabCount;
}
$tIndex = getStringHash("zhaoqhu",100);
var_dump($tIndex);die;