11 - PXC集群|MySQL存储引擎

news2024/10/5 0:55:57

PXC集群|MySQL存储引擎

  • 数据库系列文章
  • PXC集群
    • 配置集群
    • 测试集群
  • MySQL存储引擎
    • 存储引擎介绍
      • mysql服务体系结构
      • mysql服务的工作过程
        • 处理查询访问的工作过程
        • 处理存储insert访问的工作过程
      • 什么是搜索引擎
    • 存储引擎管理
      • 查看存储引擎
      • 修改存储引擎
    • 存储引擎特点
      • myisam存储引擎特点
      • innodb存储引擎特点
    • 事务
      • 事务的特性(ACID 表的存储引擎必须是innodb 才有事务)
    • 事务回滚
    • 隔离级别

数据库系列文章

1 - 数据库服务概述 | 构建MySQL服务 | 数据库基本管理 | MySQL基本类型
2 - 表结构 | MySQL键值
3 - 字段约束|MySQL索引|MySQL用户管理
4 - 基础查询进阶|连接查询
5 - 视图|存储过程
6 - 数据备份与恢复|innobackupex
7 - MySQL主从同步|主从同步模式
8 - MySQL数据读写分离|MySQL多实例
9 - 数据分片概述|部署MyCat服务
10 - MHA集群概述|部署MHA集群
11 - PXC集群|MySQL存储引擎

PXC集群

用来实现mysql服务高可用集群的软件 (MHA配置比较复杂 必须要有vip地址)
是基于Galera的mysql高可用集群解决方案

在这里插入图片描述
在这里插入图片描述
SST全量同步 完全备份文件

在这里插入图片描述

配置集群

在这里插入图片描述
在这里插入图片描述

  • 修改配置文件
# 指定集群中的server-id
vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf

编号不能一样
在这里插入图片描述

  • 指定集群信息 三台机器都要修改
    在这里插入图片描述
# 修改71主机的wsrep.cnf 文件
vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
# 修改72主机的wsrep.cnf 文件
# 修改73主机的wsrep.cnf 文件

在这里插入图片描述
任意一台服务器上执行初始化集群操作(仅需要执行一遍)统一在71主机操作
在这里插入图片描述

  • 在其他2台服务器上执行
    启动数据库服务
    会自动同步71主机的授权用户及管理员root密码
systemctl start mysql # 启动数据库服务

服务端口

netstart -utnlp |grep :3306
netstart -utnlp | grep :4567

测试集群

第一步 连接集群中的任意主机存取数据

第二步 集群中只要有一台数据库服务器是正常工作的就能提供存取功能
停止任意2台数据库服务,都可以访问剩下的一台数据库服务器存取数据

systemctl stop  mysql@bootstrap.service

在这里插入图片描述
在这里插入图片描述

第三步 宕机的服务器启动后会自动加入集群并同步宕机期间的数据
在这里插入图片描述
在这里插入图片描述

MySQL存储引擎

存储引擎介绍

mysql服务体系结构

在这里插入图片描述

共有8个功能模块
1.连接池 验证客户端连接时使用的用户名和密码是否正确 同时验证数据库服务器是否有mysqld进程相应的连接
2.SQL接口 把用户执行的sql命令传递给本地的mysqld进程
3.分析器 检查sql命令的语句及对数据的访问权限
4.优化器 对要执行的sql命令做优化(是内存自动功能程序)
5.查询缓存(默认没有开启)使用操作系统的内存空间查询查找过的数据 划分出一定的物理内存空间给Mysql服务存储查找过的数据
6.存储引擎 软件自带的功能程序 没种存储引擎都有各自的功能和数据存储方式 当客户端访问的数据在数据库服务器的硬盘的时候,存储引擎就会对数据做处理 说白就是 数据库服务 给用户提供的功能分类(比如 在表创建外建就必须使用innodb存储引擎)对表里的数据做查询(select)或写(insert/update/delete)会调用存储引擎对表中的数据做处理,至于如何处理取决于表使用的存储引擎的功能
7.文件系统 指定就是存储设置(通常就是服务器的硬盘)
8.管理工具 安装软件后 提供的管理命令

mysql服务的工作过程

处理查询访问的工作过程

第一步:客户端向服务器发起连接请求
第二步:服务器接收到客户端连接请求并响应
第三步:如果客户端执行的select访问,先在查询缓存里提取数据回复给客户端,如果数据库服务器在查询缓存里没有找到用户访问的数据,这时就要到数据库服务器的表里查找数据,对数据库目录下的表做访问就会调用表使用的存储引擎对表做处理 然后把查找的数据先存放到查询缓存,在回复给客户端
第四步:断开连接


在数据库查看与缓存相关的配置项 默认就没有启用查询缓存
在这里插入图片描述


处理存储insert访问的工作过程

第一步:客户端向服务器发起连接请求
第二步:服务器接收到客户端连接请求响应
第三步:根据表使用的存储引擎,对表中的数据做对应的处理
第四步:断开连接

什么是搜索引擎

当对表里的数据做selectinsert访问时,会根据表使用的存储引擎对数据做处理。
在这里插入图片描述

存储引擎管理

查看存储引擎

  • 查看数据库服务器支持的存储引擎和默认使用的存储引擎
mysql> show engines;

在这里插入图片描述
在这里插入图片描述

  • 查看当前已有表使用的存储引擎

修改存储引擎

  • 修改数据库服务默认使用的存储引擎 建表时不指定存储引擎 用默认的存储引擎
vim /etc/my.cnf

在这里插入图片描述
在这里插入图片描述

  • 建表时指定表使用的存储引擎
mysql> create table db10.b(name char(10)) engine = innodb;
mysql> create table db10.b(name char(10)) engine = memory;

在这里插入图片描述

说明:innodb存储的表 每个表对应2个表文件

  • 修改表使用的存储引擎(在表没有存储数据之前修改
    存储引擎修改了,存储数据的位置也会改变
mysql > alter table db10.c engine=myisam;

在这里插入图片描述

存储引擎特点

myisam存储引擎特点

支持表级锁,不支持事务、事务回滚、外键
每个表对应3个表文件
表名.frm 表头信息 mysql> desc 库.表
表名.MYI 表的索引信息 mysql > show index from 库.表
表名.MYD 存储表里的数据。mysql > select * from 库.表

innodb存储引擎特点

支持行级锁 支持事务、事务回滚、外键
每个表对应2个表文件
表名.frm 存储表头信息
表名.ibd 存储表的索引信息+表的数据信息。mysql > show index from 库.表 + mysql > select * from 库.表

说明:给表加锁,为了解决并发访问的冲突问题
锁粒度 : 给表加锁的范围
行级锁:仅仅对被访问的行分别加锁 没有被访问的行不加锁、
表级锁:不管访问的1行还是更多行 都会把整张表加锁
锁类型: 根据对数据的访问类型加锁。
读锁 :对数据做查询访问 又称为共享锁 加了读锁的表 允许多个访问同时查询一张表
写锁:又称为排它锁 或 互斥锁 对数据做写访问(写访问通常insert update delete) 加了写锁 只允许一个连接做写操作,后续的读和写都得等待 等待当前的写锁的释放后 才允许后续的查和写
在这里插入图片描述

事务

指的是一组不可分割的SQL操作
使用Innodb存储引擎的表才支持事务
事务处理可以用来维护数据的完整性,保证成批的SQL
语句要么全部执行,要么全部不执行
事务用来管理对数据的insert ,update,delete操作

事务的特性(ACID 表的存储引擎必须是innodb 才有事务)

Atomic:原子性 一个事务中的所有操作,要么全部完成,要么全部不完成
Consistency:一致性 在事务开始之前和事务结束以后,数据库的完整性不会被破坏 执行SQL命令时 敲回车前 成为事务开始之前 敲回车后 成为事务结束以后。
Isolation:隔离性 数据库允许多个并发事务同时对其数据进行读写和修改而互不影响 mysql服务是支持多并发的连接,同一时刻可以同时接收多个客户端的访问 如果访问的是innodb存储引擎的表,彼此不知道操作的是同一张表
Durability:持久性 事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失 执行回车后,事务就结束了,数据会永久有效

事务回滚

首先得关闭事务的自动提交
在这里插入图片描述

在这里插入图片描述
回滚数据时 回滚到指定位置,默认rollback是回滚所有操作
想把数据回滚到指定位置,必须定义保存点
在这里插入图片描述
在这里插入图片描述

隔离级别

脏读:看到了对方没有提交的数据 缺点:用户查到的数据 最终不一定会存储在数据库里 因为没有提交的事务 是可以回滚的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1400731.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

20240119-子数组最小值之和

题目要求 给定一个整数数组 arr,求 min(b) 的总和,其中 b 的范围涵盖 arr 的每个(连续)子数组。由于答案可能很大,因此返回答案模数 Example 1: Input: arr [3,1,2,4] Output: 17 Explanation: Subarrays are [3]…

【排序算法】五、冒泡排序(C/C++)

「前言」文章内容是排序算法之冒泡排序的讲解。(所有文章已经分类好,放心食用) 「归属专栏」排序算法 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 冒泡排序1.1 原理1.2 代码实现(C/C)1.3 特性总结 冒泡排序 1.1…

基于Springboot的民宿在线预定平台(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的民宿在线预定平台(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通过Spring…

SAI实例研究

实现目标 接到特定任务后,召唤生物攻击当前角色 例子 creature.id 15402(即 smart_script.entryorguid)共分为0和1两个事件阶段 第0阶段:第1条(id 0),第2条(id 1),第3条(id 2…

基于YOLOv8的目标识别、计数、电子围栏的项目开发过程

0 前言 用于生产环境中物体检测、识别、跟踪,人、车流量统计,越界安全识别 1 YOLOv8概述 YOLOv8 是Ultralytics的YOLO的最新版本。作为一种前沿、最先进(SOTA)的模型,YOLOv8在之前版本的成功基础上引入了新功能和改进,以提高性…

构建STM32MP133的Buildroot环境

意法半导体ST在坚持用 Yocto构建他们的OpenSTLinux MP1系列MCU,编译费劲,而且我们的应用不需要Yocto的环境,所以基于Buildroot的最小Linux系统更适合我们。 STM32MP133微处理器基于单Arm Cortex-A7内核,运行频率可达1 GHz&#x…

PACS医学影像采集传输与存储管理、影像诊断查询与报告管理系统,MPR多平面重建

按照国际标准IHE规范,以高性能服务器、网络及存储设备构成硬件支持平台,以大型关系型数据库作为数据和图像的存储管理工具,以医疗影像的采集、传输、存储和诊断为核心,集影像采集传输与存储管理、影像诊断查询与报告管理、综合信息…

使用JFLASH实现文件程序自动化合并及下载功能

主要总结下使用 SEGGER 工具集的 JFLASH 软件实现hex/bin文件合并以及程序的自动下载使用方法。 起因是最近使用到LVGL字库文件的制作,每次都要将分散的bin文件按既定分配的偏移作合并处理,刚开始使用的是二进制文件合并工具,文件少的时候还行&#xff…

C#使用DateTime.Now静态属性动态获得系统当前日期和时间

目录 一、实例 1.源码 2.生成效果 二、相关知识点 1.Thread类 (1)Thread.Sleep()方法 (2)Thread(ThreadStart) (3)IsBackground (4)Invoke( ) 2.CreateGrap…

【c++函数重载】

文章目录 一. 命名空间二 .全缺省参数和半缺省参数三 . 函数重载 一. 命名空间 1.不指定域:先在局部找,再全局。 2. 指定域:到指定的命名空间去找。 3. 当把指定命名空间放开时,即using namespace std;例如放开标准c库…

分布式 session

分布式 session 种 session 的时候需要注意范围,也就是 cookie.domain。 比如两个域名:a.heo.com,b.heo.com。如果要共享 cookie,可以种一个更高层的公共域名,比如 heo.com。 当服务器 A (localhost:808…

大数据平台的硬件规划、网络调优、架构设计、节点规划

1.大数据平台硬件选型 要对Hadoop大数据平台进行硬件选型,首先需要了解Hadoop的运行架构以及每个角色的功能。在一个典型的Hadoop架构中,通常有5个角色,分别是NameNode、Standby NameNode、ResourceManager、NodeManager、DataNode以及外围机。 其中 NameNode 负责协调集群…

OneNote使用总结

试一下OneNote表格复制到CSDN的编辑器 用表格整理内容挺方便的,不过复制过来格式还是有些变化 目录 常用快捷键 高级应用 常用快捷键 文字编辑与排版 字号增加减小 Ctrl Shift 大于小于号 整行上下移动 左右缩进 Alt Shift方向 插入或转为公式 Alt 等于…

软件需求规格说明书-word

软件需求规格说明书编写规范 1.项目背景 2.项目目标 3.系统架构 4.总体流程 5.名称解释 6.功能模块 软件开发全文档获取:软件项目开发全套文档下载_软件项目文档-CSDN博客

Python笔记10-数据可视化练习折线图

文章目录 JSON数据Python数据和Json数据的相互转化pyecharts模块构建折线图全局配置绘制疫情数据折线图 JSON数据 JSON是一种轻量级的数据交互格式。可以按照JSON指定的格式去组织和封装数据 。本质上是一个带有特定格式的字符串 主要功能:可以在各个编程语言中流通…

R语言的ggplot2绘制分组折线图?

R绘制分组折线图.R 首先看数据情况:group有3组。Time有3组,数据意思是在3组3个时间点测量了某指标,现在要绘制组1、组2、组3某指标y按时间的变化趋势 数据情况: 看看最终的效果图如下: 下面是本次使用的代码 .libPat…

合并两个有序数组(三指针法)

这道题使用三指针法,实际上是创建三个变量模拟下标的走势: 一般常规想法是先合并再排序,三指针则是边合并边排序; l1是nums1的有效数据的最后一位的下标,即m - 1; l2是num2的有效数据的最后一位的下标&a…

conda修改默认环境安装位置

conda修改默认环境安装位置 文章目录 conda修改默认环境安装位置查看conda配置信息创建.condarc(conda runtime controlling)配置文件没有.condarc怎么办 即使创建正确放置了.condarc创建环境时还是默认指定C盘目录写权限目录修改权限 查看conda配置信息 conda con…

前端实现贪吃蛇功能

大家都玩过贪吃蛇小游戏,控制一条蛇去吃食物,然后蛇在吃到食物后会变大。本篇博客将会实现贪吃蛇小游戏的功能。 1.实现效果 2.整体布局 /*** 游戏区域样式*/ const gameBoardStyle {gridTemplateColumns: repeat(${width}, 1fr),gridTemplateRows: re…

Hive-SQL语法大全

Hive SQL 语法大全 基于语法描述说明 CREATE DATABASE [IF NOT EXISTS] db_name [LOCATION] path; SELECT expr, ... FROM tbl ORDER BY col_name [ASC | DESC] (A | B | C)如上语法,在语法描述中出现: [],表示可选,如上[LOCATI…