|
在大中型項(xiàng)目中,在數(shù)據(jù)庫(kù)設(shè)計(jì)的時(shí)候,考慮到數(shù)據(jù)庫(kù)最大承受數(shù)據(jù)量,通常會(huì)把數(shù)據(jù)庫(kù)或者數(shù)據(jù)表水平切分,以降低單個(gè)庫(kù),單個(gè)表的壓力。我這里介紹兩個(gè)我們項(xiàng)目中常用的數(shù)據(jù)表切分方法。當(dāng)然這些方法都是在程序中?使用一定的技巧來(lái)路由到具體的表的。首先我們要確認(rèn)根據(jù)什么來(lái)水平切分?在我們的系統(tǒng)(SNS)中,用戶的UID貫穿系統(tǒng),唯一自增長(zhǎng),根據(jù)這個(gè)字段分表,再好不過(guò)。
方法一:使用MD5哈希
做法是對(duì)UID進(jìn)行md5加密,然后取前幾位(我們這里取前兩位),然后就可以將不同的UID哈希到不同的用戶表(user_xx)中了。
function getTable( $uid ){
$ext = substr ( md5($uid) ,0 ,2 );
return "user_".$ext;
}
it知識(shí)庫(kù):數(shù)據(jù)庫(kù)水平切分方法,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。