Rumah > pembangunan bahagian belakang > tutorial php > 水平分表与垂直分表 水平标尺和垂直标尺 垂直水平靠尺 水平视角和垂直视

水平分表与垂直分表 水平标尺和垂直标尺 垂直水平靠尺 水平视角和垂直视

WBOY
Lepaskan: 2016-07-29 08:55:05
asal
1824 orang telah melayarinya

近日遇到一个问题,如果数据量比较大如何进行分表?

信息表为例:
我事先建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

这个就是获取数据表的方法

 原来的表明是写死的
你这是通过函数获取表名就可以了

 像新闻那种Cm s一半是根据分类来拆分表的,这叫垂直切分
用户那种叫水平切分 

 比如 : list 这个表 有50W条数据 , 你PHP写个判断 , 每写这表时判断一下, 是不是 达到50W条, if达到 ,就写入 list_1表 , 写个自动增加表 


然后再根据条件 查询是哪个表  然后在进行操作


以上就介绍了水平分表与垂直分表,包括了垂直,水平方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan