数据库架构设计

Posted jiyanjiao-702521

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库架构设计相关的知识,希望对你有一定的参考价值。

数据库架构设计

数据库性能测试的目的:

  1. 发现数据库相关的所有性能瓶颈

数据库性能测试的范围:

  1. sql语句-慢查询等
  2. 资源使用率
  3. 数据库架构合理性
  4. 数据库性能指标

数据库的常用架构:

  1. 一主多从 master(主写)技术图片

     

     

a)         master:主要负责数据的写入,和更新

b)         将数据复制到slave上,从库上主要是读数据(优点实现了读写分离,分担了单台服务器的压力; 缺点可能会存在主从延时)

  1. 双机热备 keepAlived ->VIP(虚拟ip)->master->复制->slave

a)         写入,更新,读取都在master上,同时将数据复制到slave上

b)         优点防止了延时; 当master挂掉的时候虚拟ip会直接指向salve,slave就变成了master 缺点:没有分担服务器压力,当第二台服务器slave挂掉后VIP不会再指向master;

数据库主从同步的工作原理:

  1. Master(主数据库)将改变记录到二进制日志中(binary log:就是linux中的一个文件,记录了数据库本身的所有操作)中
  2. Slave(从数据库)将master的binary log events 拷贝到他的中继日志(relay log)
  3. Slave (从数据库)重做中继日志中的事件,将改变反应它自己的数据

数据库分库分表的设计方法:

  1. 1.       拆分的原因:

a)         单表或库数据量太大

b)         硬件不能升级或无法升级

  1. 2.       分库分表方案:

a)         业务拆分 :用户, 商品, 订单

b)         垂直拆分 :商品: 母婴用品, 床上用品, 电子商品

c)         水平拆分(一致性哈西算法) : userid: 拆分为3个表,分别是userid%3==1; userid%3==2; userid%3==3

以上是关于数据库架构设计的主要内容,如果未能解决你的问题,请参考以下文章

5.业务架构·应用架构·数据架构实战 --- 业务驱动的数据架构设计

程序员架构修炼:架构设计概要,业务应用技术数据架构

iOS移动架构设计

数据库架构设计

架构设计杂谈005——架构分类

软考 系统架构设计师软件架构设计② 软件架构风格