欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > MYSQL教程 > 数据库读写分离Master-Slave

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:738

高端HTML5响应式企业通用网

2020-05-06   浏览:519

html5响应式外贸网站英文版

2020-05-08   浏览:506

HTML5自适应律师工作室类网

2020-04-04   浏览:502

HTML5影视传媒文化公司类网

2020-05-12   浏览:496

数据库读写分离Master-Slave

发布时间:2021-05-07  

数据库读写分离Master-Slave

一个平台或系统随着时间的推移和用户量的增多,数据库操作往往会变慢,这时我们需要一些有效的优化手段来提高数据库的执行速度;如SQL优化、表结构优化、索引优化、引擎优化和读写分离优化等手段。

1、SQL优化(简单列几点)

尽量避免用SELECT*;
只查询一条记录时使用limit1;
使用连接查询代替子查询;
尽量使用一些能通过索引查询的关键字。

2、表结构优化:

尽量使用数字类型字段,提高对比效率;
长度不变且对查询速度要求高的数据可以考虑使用char,否则使用varchar;
表中字段过多时可以适当的进行垂直分割,将部分字段移动到另一张表;
表中数据量大可以适当的进行水平分割,将部分数据移动到另一张表。

3、索引优化:

对查询频率高的字段适当建立索引,提高效率。(在经常用到的字段上适合建立索引)

4、引擎优化:

选择合适的引擎提高数据库性能,如InnoDB和MyISAM,InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持以及外部键等高级数据库功能。
InnoDB:
支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。
MyISAM:
插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读取记录,那么选择MyISAM能实现高效处理。如果对应用的完整性和并发性要求较低,也可以使用。
MEMORY:
所有的数据都在内存中,数据的处理速度快,但是安全性不高。如果需要很快的读写速度,对数据的安全性要求较低,可以选择MEMOEY。它对表的大小有要求,不能建立太大的表。所以,这类数据库只使用在相对较小的数据库表。
注意:
同一个数据库也可以使用多种存储引擎的表,如果一个表要求比较高的事务处理,可以选择InnoDB;这个数据库中可以将查询要求比较高的表选择MyISAM存储;如果该数据库需要一个用于查询的临时表,可以选择MEMORY存储引擎。

5、读写分离优化:

随着用户量的增多,数据库操作往往会成为一个系统的瓶颈所在,但一般的系统“读”的压力远远大于“写”,So我们可以通过实现数据库读写分离-主从复制来提高系统的性能。

主从设计思路:

通过设置主从数据库实现读写分离,主数据库负责“写操作”,从数据库负责“读操作”,根据压力情况,从数据库可以部署多个提高“读”的速度,借此来提高系统总体的性能。当然,我们可以根据项目等需要配置多个从库。

数据库读写分离Master-Slave

如上图所示,读写分离的实现,主要是解决主从数据库数据同步的问题,在主数据库写入数据后要保证从数据库的数据也要更新。主服务器master记录数据库操作日志到Binary log,从服务器开启i/o线程将二进制日志记录的操作同步到relay log(存在从服务器的缓存中),另外sql线程将relay log日志记录的操作在从服务器执行。

Master-Slave具体步骤

准备工作,在这之前需要准备两个服务器,分别在上面安装Mysql数据库,一个作为Master,另外一个是Slave,当然需要多个从库可以自己搞多个Slave。如下图:

两个虚拟机服务器:

数据库读写分离Master-Slave

分别安装Mysql数据库:

数据库读写分离Master-Slave

1.主mysql数据库配置文件修改 [[email protected] ~]# vim /etc/my.cnf

本文标签

:备案管家服务帮您把复杂流程变简单,解决您在进行网站备案过程中遇到的效率低下和成功率不高的问题。个人300/2个域名,企业500/5个域名,qq1650004.