近日遇到一個問題,如果資料量比較大如何進行分錶?
資訊表為例:
我事先建100個這樣的表,message_00,message_01,message_02……….message_98,message_99.然後根據用戶的ID來判斷這個用戶的聊天資訊放到哪張表裡面,你可以用hash的方式來獲得,可以用求餘的方式來獲得,方法很多,各人想各人的吧。下面用hash的方法來獲得表名:
查看複製打印?
function get_hash_table($table,$userid) {
$str = crc32($userid);
if($str$hash = '0'.substr(abs($str), 0, 1);
}else{
$hash = substr($str, 0, 2);
}
return $table.'_'. $hash;
}
echo get_hash_table('message','user18991'); //結果為message_10
這個就是獲取資料表的方法
這個就是獲取資料表的方法
寫的原來的函數取得表名就可以了
用戶那種叫水平切分
然後根據條件 寫個自動增加表
🎜🎜然後根據條件 操作🎜🎜🎜 🎜 以上就介紹了水平分錶與垂直分錶,包括了垂直,水平方面的內容,希望對PHP教程有興趣的朋友有所幫助。 🎜 🎜 🎜