网站MySQL数据库优化方案-主从架构及读写分离

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

网站MySQL数据库优化方案

网络运维信息管理中心

(2020年8月)

数据库为网站提供数据的结构化存储,是网站系统的重要组成部分,但随着业务逻辑的复杂度的增加,数据库需要不断的优化,单一的数据库已无法满足现在要求。

1.1优化目标

针对网站的MySQL数据库部署架构进行优化,其优化的目的是为了防止数据库出现单点故障问题,提高数据库的处理能力,提高数据库的可靠性,为保证网站业务正常办理。

1.2优化工作思路

1、对现有数据库现状分析包括现有数据库配置合理性分析、现有数据库部署情况两部分工作内容;

2、梳理现有网站的功能模块,目的是通过梳理网站的各功能模块对数据读取时效性,分析其是否可以实现读写;

3、以数据库主从架构及数据库读写分离方式,对网站的MySQL 数据库提出数据库部署架构优化的方案,数据库主从架构的多数据库模式,解决数据库单点存在的问题,当主数据库出现宕机时,可以将从数据库代替主数据库恢复业务系统正常运行,而且避免数据的丢失,提高数据库高可靠性和高可用性;通过部分查询统计功能,实现数据库读写分离,以便对数据库负载进行分流,缓解主数据库的读取压力。

2.1当前数据库部署架构图

当前网站的数据库采用单台MySQL数据库提供数据库服务,当前部署架构图如下:

2.2现有数据库主要配置梳理

2.3数据库部署情况梳理

2.3.1数据库安装部署情况梳理

2.3.2现有应用连接数据库情况梳理

连接数据库的应用系统有会员管理、权限管理、订单模块、商品管理、促销管理、广告管理、报表统计、文章管理、评论管理、系统设置、数据库管理、短信管理、推荐管理、邮件群发管理等。2.3.3数据库服务启动、停止方式梳理

1、启动命令

(1)普通启动:/data/soa/mysql/bin/mysqld

(2)centos6以前版本:service start mysqld

(3)centos7+:systemctl mysqld start

2、重启命令

先停止:killall mysqld

后启动:/data/soa/mysql/bin/mysqld

centos6以前版本:service restart mysqld

centos7+:systemctl mysqld restart

3、停止命令

killall mysqld 或 killall -9 mysqld

centos6以前版本:service stop mysqld

centos7+:systemctl mysqld stop

2.4数据库主机配置及运行情况

2.4.1数据库主机硬件配置及操作系统

2.4.2数据库主机资源使用情况

2.5现有使用数据库的功能模块

2.5.1当前技术开发架构

网站采用springboot2的开发框架,springboot2 是基于Java

语言的极速 web 开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。springboot2 同时支持多数据源,并且可以针对这多个数据源配置独立的缓存、事务级别等。

2.5.2现有功能模块梳理

3数据库优化方案设计3.1数据库配置优化

3.2数据库主从架构设计

3.2.1网站当前数据库部署架构

1、当前数据库部署架构图

2、当前数据库部署架构存在问题及优化思路

通过当前数据库部署架构图可知,网站的数据库采用单台数据库。当数据库出现故障时,整个网站系统无法正常使用,影响系统正常运行,即网站的数据库存在单点故障;而且数据库服务器资源无法满足增长的读写请求。

针对网站的数据库架构进行优化,优化思路是增加数据库数量,实现数据库主从架构,其优化的目的是为了防止数据库出现单点故障问题,提高数据库的处理能力,提高数据库的可靠性,为保证网站业务正常办理。

3.2.2数据库主从架构优势

1、什么是数据库主从架构

MySQL数据库主从架构,是通过主从复制方式,让一个数据库与其他的数据库同步,保持两个或多个数据库的数据一致。

2、数据库主从架构与单一数据库比较

3、数据库主从架构优点

(1)数据分布:MySQL复制通常不会对带宽造成很大的压力,并且可以随意的停止或开始复制,并在不同的地理位置来分布数据

备份,例如不同的数据中心。即使在不稳定的网络环境下,远程复制也是可以工作。但如果为了保持很低的复制延迟,最好有一个稳定的、低延迟的连接。

(2)负载均衡:通过MySQL复制可以将读操作分不到多个服务器上,实现对读密集型应用的优化,并且实现很方面,通过简单的代码修改就能实现基本的负载均衡。对于小规模的应用,可以简单对机器,名做硬编码或使用DNS轮询。当然也可以使用更复杂的方法,例如网络负载均衡这一类的标准负载均衡解决方案。能够很好的将负载均衡分配到不同的MySQL服务器上。

(3)备份:对于备份来说,复制是一项很有意义的技术补充,但复制既不是备份也不能取代备份。

(4)高可用性和故障切换:复制能够补助应用程序避免MySQL 单点失败,一个包含复制的设计良好的故障切换系统能显著缩短当机时间。

(5)MySQL升级测试:这种做法比较普遍,使用一个更高版本的mysql作为备库,保证在升级全部实例前,查询能够在备库按照预期执行。

4、优化后的网站数据库部署架构

(1)数据库主从架构图

2、数据库主从架构说明

将主数据库与从数据库配置为主从同步模式,主数据库负责写入状态,从数据库将同步到主数据库刚写入的数据,保证从数据库与主数据库的数据一致。

优点是实时灾备,当主库出现问题,可以快速切换到从库提供服务;同时该架构容易扩展,比如实现读写分离,提高系统读写数据的性能,缓解数据库的压力,增加了数据库的处理能力。

3.2.3数据库主从架构实现原理

1、数据库主从实现架构图

相关文档
最新文档