mysql数据库分库分表哪个工具好,我整理出来了五个,求点评

mysql数据库分库分表哪个工具好,我整理出来了五个,求点评,第1张

1 用户类库:用于保存了用户的相关信息。例如:db_user,db_system,db_company等。

2 业务类库:用于保存主要业务的信息。比如主要业务是笑话,用这个库保存笑话业务。例如:db_joke,db_temp_joke等。

3 内存类库:主要用Mysql的内存引擎。前台的数据从内存库中查找,速度快。例如:heap。

4 图片类库:主要保存图片的索引以及关联。例如:db_img_index,db_img_res。

5 日志类库:记录点击,刷新,登录等日志信息。例如:db_log_click,db_log_fresh,db_log_login。

6 统计类库:对业务的统计,比如点击量,刷新量等等。例如db_stat。

1.按时间分表

这种分表方式有一定的局限性,当数据有较强的实效性,如微博发送记录、微信消息记录等,这种数据很少有用户会查询几个月前的数据,如就可以按月分表。

2.按区间范围分表

一般在有严格的自增id需求上,如按照user_id水平分表:

table_1  user_id从1~100w 

table_2  user_id从101~200w 

table_3  user_id从201~300w 

... 

3.hash分表

通过一个原始目标的ID或者名称通过一定的hash算法计算出数据存储表的表名,然后访问相应的表。

按如下分10张表:

function get_hash_table($table, $userid)

{

$str = crc32($userid)

if ($str < 0) {

$hash = "0" . substr(abs($str), 0, 1)

} else {

$hash = substr($str, 0, 2)

}

return $table . "_" . $hash

}

echo get_hash_table('message', 'user18991') //结果为message_10

echo get_hash_table('message', 'user34523') //结果为message_13


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7140500.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存