数据库架构的演变

数据库架构的演变

  • 数据库架构的演变
    • 没有缓存的Web开发架构
    • 有缓存的Web开发架构
    • 数据库的主从拆分,读写分离
    • 数据库集群
    • 现今数据库架构

数据库架构的演变

没有缓存的Web开发架构

  1. 架构图数据库架构的演变_第1张图片
  2. 这种架构通过数据库访问对象直接访问一个数据库(如通过JDBC指定数据库:jdbc:mysql://localhost:3306/database)存取数据,从而存在一些瓶颈
    1. 一台机器的磁盘无法存储大量的数据
    2. 一台机器的内存无法装入数据库的索引
    3. 无法满足高并发访问

有缓存的Web开发架构

  1. 架构图

数据库架构的演变_第2张图片

  1. 引入缓存
    后,将常用的数据库查询结果放到缓存中,这样下次要再次查询这些存放在缓存中的数据时,就可以直接到缓存中拿数据,而不用访问数据库,从而缓解了数据库的访问压力;
  2. 进行垂直拆分,将数据进行分类,将不同类型的数据放到不同的数据库中,从而将原来单个数据库的压力分发给多个数据库;

数据库的主从拆分,读写分离

  1. 架构图

数据库架构的演变_第3张图片
2. 将数据库分成两类数据库 主数据库从数据库,DAO向主数据库中写数据,从从数据库读取数据 。读写分离就进一步的减轻了数据库的访问压力;

数据库集群

  1. 架构图数据库架构的演变_第4张图片

  2. 即使实现了数据库的读写分离,随着用户的增加,数据库的性能会进一步地面临挑战,这时候需要对数据以及数据结构进一步进行分析优化。;

    1. 分表分库:将原来同一张表中的数据按行进行拆分,如上图所示,将原表1/3行的数据放到不同机器的不同数据库中,从而解决了原有数据库的存储压力;
    2. 水平拆分:重新分析原有系统的业务逻辑,从而重新划分数据,比如:容易发生变化的数据放在一起,不容易发生变化的数据放在一起,最后将数据分区进行存储。如上图所示,每一个区都是多台机器上的不同数据库组成的集群;

现今数据库架构

架构图

  1. 架构图数据库架构的演变_第5张图片
  2. 数据库集群的基础上引入负载均衡机器,这些机器将收到的请求按照当前各个机器的负载情况转发请求。

你可能感兴趣的:(数据库)