随着业务请求的高并发,数据库压力变大,再不引入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/

mysql 分库分表分区 入门

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

 

相关文章:

  • 2021-06-27
  • 2022-01-08
  • 2021-07-03
  • 2022-12-23
  • 2021-11-30
  • 2021-09-19
  • 2021-07-19
猜你喜欢
  • 2021-04-03
  • 2022-01-14
  • 2021-07-08
  • 2021-05-16
  • 2022-01-18
  • 2022-12-23
  • 2021-08-12
相关资源
相似解决方案