MySQl分库分表

为什么要分库分表, 那当然是由于数据量太大了导致数据库访问效率越来越低, 而且我们在设计服务器后台数据库的时候, 一定是会根据不同的业务类型, 把同类型业务的数据放到相关的数据库以及表当中, 也就是分库分表! 在数据量超大的时候, 比如几亿条数据量的时候, 使业务模块和数据库在交互的时候不至于失控(无效的查询, 多余的查询, 效率低下)。

目录

 

1 分库

1.1 按照功能分库

1.2 安装城市站分库

2 分表

2.1 水平分割:解决表行数过大的问题

2.1.1 按照用户或业务编号分表

2.1.2 按照日期分表

2.2 垂直分割

3 MySql数据库常用框架


1 分库

1.1 按照功能分库

按照功能进行分库。常见的分成6大库:

  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 安装城市站分库

如果业务遍布全国,在按照功能分库库,每一个城市复制一份一模一样的库,只是库后缀都是城市名称。比如db_log_click_bj,db_log_click_tj,db_log_click_sh;

2 分表

2.1 水平分割:解决表行数过大的问题

2.1.1 按照用户或业务编号分表

对与用户或业务可以按照编号%n,进行分成n表。例如笑话表:

 tb_joke_01,tb_joke_02,tb_joke_03,tb_joke_04........

2.1.2 按照日期分表

对于日志或统计类等的表。可以按照年,月,日,周分表。例如,点击统计量:

tb_click_stat_201601,tb_click_stat_201602,tb_click_stat_201603  

2.2 垂直分割

1)经常组合查询的列放在一张表中。常用字段的表可以考虑用Memory引擎。

2)把不常用的字段单独放在一张表。

3)把text,blob等大字段拆分出来放在附表中。

3 MySql数据库常用框架

核心,一主多从,读写分离。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值