Mysql主从复制、读写分离、分库分表

发布时间:2024年01月24日

1.主从复制

主从复制

1.1 概述

主从复制指: 将主数据库的DDLDML操作通过二进制日志传递到从库服务器中, 然后从库根据日志重新执行(也叫重做), 从而使从库和主库的数据保存同步

MYSQL支持一台主库同时向多台从库进行复制, 从库同时也可以作为其他从服务的主库, 实现链状复制

主从复制的优点:

  • 主键出现问题, 可以快速切换到从库提供服务
  • 实现读写分离, 降低主库的访问压力
  • 可以在从库中执行备份, 以避免备份期间影响主库服务

DDL和DML的区别

  • DDL: 定义数据库的结构和模式的语言. 通常用于创建、修改和删除数据库、表、视图、索引等数据库对象. 常见的DDL语句包括CREATE、ALTER、DROP. DDL语句一般会自动提交事务, 即执行后会立即生效且无法回滚
  • DML: 用于操作数据库中的数据的语言. DML语句用于插入、更新、删除数据库中的数据. 常见的DML包括INSERT、UPDATE、DELETE.DML语句一般不会自动提交事务, 需要通过COMMIT语句手动提交才能生效, 也可以通过ROLLBACK语句回滚操作

1.2 原理

  • 角色分配
    • 主库(Master)
      主库在事务提交时, 将对数据库的更改(DDL和DML)记录到二进制日志(Binary Log)中
    • 从库(Slave)
      从库读取主库的二进制日志, 并将这些日志中的更改(DDL和DML)应用到自己的数据库中
  • 二进制日志
    主库将所有更改数据库的操作写入二进制日志中
  • IO线程
    从库有一个IO线程, 负责连接到主库并请求主库的二进制日志, 写入从库本地的中继日志中
  • 中继日志
    从库用来存储主库二进制日志事件的本地副本
  • SQL线程
    从库有一个SQL线程, 它负责读取中继日志中的SQL语句, 并在从库上执行这些SQL语句, 以使从库的数据保持与主库同步

在这里插入图片描述

1.3 搭建

文章来源:https://blog.csdn.net/qq_24099547/article/details/135779295
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。