网站MySQL数据库优化方案-主从架构及读写分离
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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、数据库主从实现架构图