首页 > 数据库 >MYSQL基本概述

MYSQL基本概述

时间:2023-04-18 22:04:56浏览次数:36  
标签:基本 binlog 索引 线程 概述 MYSQL 主库 从库 主键

MYSQL

1、主从复制

image

总览:

mysql主从复制是一个异步的复制过程:

1、主库会创建一个binlog输出线程,实时的将mysql的操作写入本地的binlog二进制文件中

2、从库开始复制时

​ 创建从库I/O线程,将主库传来的binlog文件,保存到本地的relay log文件中。

​ 创建SQL线程,从ready log文件中的操作取出来进行执行,完成复制。

流程:

  • 步骤一:主库db的更新事件(update、insert、delete)被写到binlog
  • 步骤二:从库发起连接,连接到主库
  • 步骤三:此时主库创建一个binlog dump thread,把binlog的内容发送到从库
  • 步骤四:从库启动之后,创建一个I/O线程,读取主库传过来的binlog内容并写入到relay log
  • 步骤五:还会创建一个SQL线程,从relay log里面读取内容,从Exec_Master_Log_Pos位置开始执行读取到的更新事件,将更新内容写入到slave的db

2、数据结构

  • 聚簇索引-InnoDB(常用)

  • 非聚簇索引-MyISAM(不常用)

    区别:

    1、InnoDB支持事务,MyISAM不支持事务

    2、InnoDB支持外键,MyISAM不支持外键

    3、两者使用的都是B+树作为索引结构,其中:

    ​ InnoDB的叶子节点存放了索引和数据

    ​ MyISAM叶子节点只存放了指向数据的索引值

InnoDB:

主索引:按主键来进行聚集,表必须要有主键,若无主键,mysql会自动选择一个唯一标识的数据记录列作为主键,若不存在该列,会生成一个隐含字段作为主键,长度为6,类型为长整型。最终叶子节点存放该条数据的全部数据。

辅助索引:都是主索引的data域中的各个数据列来作为辅助索引,最终叶子节点存放主索引的索引值。

image

image

MYISAM:

主索引:将主键为索引,最终叶子节点存放指向数据磁盘地址的指针。

辅助索引:是其他列作为索引,最终叶子节点也是存放指向数据磁盘地址的指针。

image

image

标签:基本,binlog,索引,线程,概述,MYSQL,主库,从库,主键
From: https://blog.51cto.com/u_16078430/6204077

相关文章

  • MYSQL2 配置文件
    进入目录:cd/usr/share/mysql复制配置文件:cpmy-huge.cnf /etc/my.cnf查看字符集:showvariableslike‘character%’ 或者:showvariableslike‘char%’ ......
  • Linux下Mysql数据库的基础操作
    (Linux下Mysql数据库的基础操作)一、Mysql数据介绍Mysql数据库是一种关系型数据库管理系统,具有的优点有体积小、速度快、总体成本低,开源,可移植性(跨平台,在不同系统中使用),可以和开发语结合,属于轻量级数据库。二、数据库相关术语介绍1.数据库相关名词数据库:database表:table......
  • is blocked because of many connection errors; unblock with 'mysqladmin flush-hos
    指定允许连接不成功的最大尝试次数。5.7默认是100;如果到达这个数,那么服务器将不再允许新的连接,即便mysql仍正常对外提供服务。所以可以将这个参数设置为几万。showvariableslike'max_connect_errors';//最大链接错误次数可以提供最大的链接错误次数setglobalmax_conn......
  • 【Python毕业设计】基于Python+Flask+MySQL的学生信息管理系统(附完整源码)
    1、项目说明基于python+Flask+mysql的学生信息管理系统项目实战项目需要安装pycharm专业版,mysql数据库以及项目所需的所有模块创建数据库名称db_online_notes,然后执行sql文件生成数据表和数据项目需要安装flask,pymysql以及其他的一些模块安装命令如下:pipinstall-ihttps://......
  • swift 自定义tabbar为基本结构的项目
    swift自定义tabbar1、Xcode新建一个项目,选择布局方式为storyBoard,语言为swift2、打开项目,新建一个cocoa文件,继承于TabBarViewController,名字命名为BaseTabBarViewController3、勾选mainstoryboard,选中右侧窗口第四个检查项,将Class关联到BaseTabBarViewController4、新建......
  • 开心档之MySQL 序列使用
     MySQL序列使用MySQL序列是一组整数:1,2,3,...,由于一张数据表只能有一个字段自增主键,如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现。本章我们将介绍如何使用MySQL的序列。使用AUTO_INCREMENTMySQL中最简单使用序列的方法就是使用MySQLAUTO_......
  • Datagrid组件的基本讲解
    https://blog.csdn.net/qq_37192800/article/details/784680341.datagrid的基本属性datagrid—-一种接收后台数据用于,以标准表单的形式展示的组件。EasyUI接收两种参数:对象参数;数组参数。url:数据请求后台的地址。title:表单的标题。iconCls:图标。pagination:......
  • 分享一下Audio的一些基本概念
    1.底层音频帧的概念 1帧 = channel数 * 采样位数 * 8 (bytes)。比如双声道,16Bit,小尾端的采样PCM数据 1帧=2*16*8 (bytes) = 256 (bytes)2.Alsa period(周期)是以帧为单位,比如periodSize为128帧。所以alsa的dma一个块一次传输的latency = periodSize / sampleRat......
  • 云原生之在kubernetes集群下部署Mysql应用
    (云原生之在kubernetes集群下部署mysql应用)一、Mysql介绍数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。MySQL是一种开源的关系型数据库管理系统,可将数据保存在不同的表中,而不是将所有数据放在一个大的仓库内,从而加快了访问速度并提高了灵活性。MySQL使用了标准......
  • MySQL8初始化报错 --Data Dictionary initialization failed
     我使用的命令是:/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql/mysql3306/  --user=mysql  拷少参数了还找半天,,,,,,,, [root@node02bin]#./mysqld--initialize-insecure--defaults-file=/etc/my.cnf--basedir=/usr/lo......