mysql 分库分表分区 入门

 

随着业务请求的高并发,数据库压力变大,在不引入Nosql,更改系统架构的情况下,可以考虑分库分表分区

分表

分表就是为了减少单个数据库表的压力,当单表数据量达到百万级别时候,无论是插入和查询对将面临瓶颈,访问变慢,引入分表也是为了减轻单表的压力,常见的分表策略

对于业务表或者用户表,可以根据业务ID或者用户ID 对表数取模、范围a~b等,以取模为例%n,将表分为n个,如tb_uesr0,tb_user1,tb_user2,tb_user3....

对于用作分析或者统计时候,例如日志表,可以根据日期分表,如tb_log20180101,tb_log20180102....

分区

分区和分表大致相同,只是将单个数据表的数据分段存放在磁盘的不同区域,对外读写还是现实一张表,由DB去西东组织数据。

分库:

分表减轻的是单个数据表的数据量压力,而分库则是应对并发请求下面数据库服务器的访问压力。分库也可以选择对关键字取模的方式选择访问的数据库

存放DB= 关键字段%DB数

-------------------------------------------------------------------------------

常见的数据库分表分库中间件,sharding-jdbc,mycat 等。本文以 mycat 为例

官网:http://www.mycat.io/

mycat是根据分片字段、分片算法进行访问,解压mycat,可看到conf中的三个配置文件 (比较重要),可以在配置 文件中自己定义分片规则,使用mycat对数据库进行访问时候,mycat会对sql语句进行拆分和路由,以从真实数据库中获得数据或者访问。

(待扩充)

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值