8. 数据库架构设计思想--主从和分库分表

数据库性能测试目的和范围

  • 目的
  1. 发现数据库性能瓶颈.
  • 范围.
  1. sql查询(慢查询)
  2. 资源使用率
  3. 数据库架构合理性
  4. 性能指标,比如:事务(Transactions Per Second,每秒传输的事物处理个数,即服务器每秒处理的事务数)

数据库常用架构

一主多从

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200519080033673.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_a HR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjE4Mzg1NA==,size_16,color_FFFFFF,t_70)

  • 优点
  1. 读写分离
  2. 分担了单台数据库压力
  • 缺点
  1. 存在主从数据延迟

双机热备

https://baijiahao.baidu.com/s?id=1640091002910074654&wfr=spider&for=pc

基于keepAlived实现.

  • 优点
  1. 没有主从延时
  2. 一台挂掉后,虚拟ip会跑到另一台
  • 缺点
  1. 负荷没有分散.
  2. 需要硬件提升性能

数据库主从同步工作原理

  1. master将改变记录下来
  2. 将改变传输到slave
  3. slave将根据日志,将数据反映到自己数据库

数据库分库分表设计方法

拆分原因

  1. 单表或者库数据量太大
  2. 硬件不能升级

升级硬件是万能提升性能方法.

方案

1. 业务拆分

用户表,商品表,订单表等等

2. 垂直拆分

举例: 将商品表拆分为床上用品,母婴用品,电子商品等等

3. 水平拆分

又称为一致性哈希算法

例如: 分局商品id, 将id%3 = 1的放到一个表, id%3 = 2的放到一个表, id%3 = 3的放到一个表.

postgres的分区表等等.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章