IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MYSQL高级——主从复制 -> 正文阅读

[大数据]MYSQL高级——主从复制

慢查询日志

定义

就是将那些运行查询结果很慢的SQL查出来记录到日志中。

作用

能够查到到底哪些SQL需要进行调优

如何使用?

MySQL默认是关闭了这个功能的,因为会带来性能的影响,需要的话自己开启即可。
具体使用见课件。

View视图

定义

视图是建立表的基础之上的一张伪表,是底层表的映射
这个虚拟表只保存了逻辑,不会保存任何的查询结果。

作用

1、保护了表的隐私数据
因为只保存了逻辑结果,没有数据,所有说保护了隐私
2、封装了复杂的业务逻辑。
提高了复用性,因为视图和表格二者是映射的关系,所以更改视图也会更改表格中的数据。所以说面对频繁的需求变更更灵活

主从复制

为什么使用主从复制、读写分离?

为了提高数据库的并发性能。
如果所有事情都在一台机器上完成,性能不高。
如果一台机器只负责写,操作。两台负责读。
如此性能就大大提高了。

主从复制的原理

主角:主机、主机日志binary log、从机、从机日志relay-log。
1、当主机节点进行insert、update、delete操作时,会按顺序写入主机日志。
2、从机连接到主机,主机有多少个从机,就会创建多少个binlog dump线程。
3、当主机的日志发生变化时,上述的binlog dump线程就会通知所有的从机,并将相应的主机日志内容推送给从机。
4、IO线程接受到主机的日志内容后,会将内容写入本地的从机日志relay-log。
5、SQL线程读取IO线程所写入的从机日志内容。并根据从机日志的内容对数据库做对应的操作。

img

最后操作数据库的到底是谁?

因为主机只负责操作数据库,它操作完的数据库并不需要展示给用户看。
从机只需要按照自己的节奏,将主机做了什么操作拿过来即可,在我这执行一下,执行完的结果展示给用户看即可。
二者是异步执行的
这也解释了为什么有什么会操作的很快,但是没法马上读到数据。

如何实现主从复制

1、准备

一台主机,两台从机。
三台机器的虚拟机IP都要不同。

主要是操作配置文件,基本是面向配置开发了

2、主机配置

主机上启用二进制日志binary-log。
指定主机的id
指定需要复制的数据库,即目标数据库。
还需要设置不要复制的数据库,这个配合上面那步,属于是双保险操作。

3、从机配置

指定启用从机日志,即中继日志relay-log
指定从机的id

4、在主机上建立账户,并授权slave

这一步解读起来非常怪异,但是细细品还是能够理解这个操作还是有些道理的。
==========================================
因为最终从机要去读取主机的日志数据,那么在从机上就需要一个账号去进行上述操作。
那么问题来了,这个账户从机能自己创建吗?
不能,因为你在从机上创建了。但是从机的权限低啊,你在这创建的怎么去操作等级更高的主机呢!!
所以这个账户需要在主机上创建,并授予这个账户具有很高的权限,什么权限呢?能够远程访问的权限。
最后是最吐血的,主机做了一切,创建了一个很牛逼的账号,还要把它授权给从机,给从机使用。这下一切都回到了起点。应该能理解这个操作了吧。
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';
flush privileges;
在主机上创建一个slave账号。让slave节点可以从任意虚拟机上通过密码‘123456’连接上主机,并对主机任何库的任意表可以进行操作。

5、在从机上指定主机,开始主从复制

CHANGE MASTER TO MASTER_HOST='192.168.136.10',
		MASTER_USER='slave',MASTER_PASSWORD='123456',

MASTER_LOG_FILE='mysql-bin.000001'
//master主机的binlog日志名称

MASTER_LOG_POS=590;
//binlog日志偏移量

读写分离(木知道)


缺点

可能出现master写入数据后,slave读取数据不一定能马上读出来
原因:
	从机是通过binlog日志从master同步数据的,如果在网络延迟的情况,从机就会出现数据延迟。
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-11-22 12:24:30  更:2021-11-22 12:24:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:47:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码