mysql
文章平均质量分 95
cyd_0619
这个作者很懒,什么都没留下…
展开
-
一篇文章带你读懂MySQL的事务机制原理
一、事务 1.1 多事务并发执行访问MySQL 通常而言,我们都是在业务系统里开启事务来执行增删改操作,我随便给大家举个例子,下面的代码大家看看。 @Transactional public void doService() { // 增加一条数据 addUser(); // 更新一条数据 updateUser(); // 删除一条数据 deleteUser(); } 所以一般来说,业务系统是执行一个一个的事务,每个事务里可能是一个或者多个增删改查的SQL语句。 这个事务的概念想必原创 2021-07-18 15:02:24 · 617 阅读 · 0 评论 -
一篇文章带你读懂MySQL的InnoDB存储引擎Buffer Pool原理
一个不变的原则:网络连接必须让线程来处理 一条SQL语句的执行 MySQL内部的工作线程从一个网络连接中取出来一个SQL语句,然后交给SQL接口去执行SQL语句,SQL接口将SQL语句交给查询解析器去解析SQL,解析完SQL,查询解析器再将SQL语句交给查询优化器,去获取一个最优的执行计划,最后交由执行器,执行器根据这个执行计划去调用存储引擎的接口,完成SQL语句的执行。 一、InnoDB存储引擎 1.1 基于InnoDB存储引擎完成一条更新语句的执行 更新语句:update users set na原创 2021-07-11 14:37:19 · 610 阅读 · 0 评论 -
MySQL主从同步及MHA高可用架构搭建
1. 环境软件版本 环境&软件 版本 虚拟机&VMware Workstation WorkStation 10 服务器&CentOS 7.8 数据库&Mysql 5.7.28 远程连接& MobaXterm_Personal_10.5 10.5 2. 环境架构介绍 架构如图所示,4台机器的IP和角色如下表: IP 角色 权限 192.168.43.127 数据库Master 可读写、主库 192.168.43.21原创 2021-03-17 23:22:22 · 276 阅读 · 0 评论 -
MySQL高级系列(四)—— MySQL集群架构
第1节 集群架构设计 1.1 架构设计理念 在集群架构设计时,主要遵从下面三个维度: 可用性 扩展性 一致性 1.2 可用性设计 站点高可用,冗余站点 服务高可用,冗余服务 数据高可用,冗余数据 保证高可用的方法是冗余。但是数据冗余带来的问题是数据一致性问题。 实现高可用的方案有以下几种架构模式: 主从模式 简单灵活,能满足多种需求。比较主流的用法,但是写操作高可用需要自行处理。 双主模式 互为主从,有双主双写、双主单写两种方式,建议使用双主单写 1.3 扩展性设计 扩展性主要围绕着读操作扩展和原创 2021-03-09 20:12:17 · 725 阅读 · 1 评论 -
MySQL高级系列(三)—— MySQL事务和锁
第三部分 MySQL事务和锁 第1节 ACID 特性 在关系型数据库管理系统中,一个逻辑工作单元要成为事务,必须满足这 4 个特性,即所谓的 ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。 1.1 原子性 原子性:事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。 修改—》Buffer Pool修改—》刷盘。可能会有下面两种情况: 事务提交了,如果此时Buffer Pool的脏页没有刷盘,如何转载 2021-02-21 21:37:17 · 146 阅读 · 0 评论 -
MySQL高级系列(二)—— MySQL索引原理
第二部分 MySQL索引原理 第1节 索引类型 索引可以提升查询速度,会影响where查询,以及order by排序。MySQL索引类型如下: 从索引存储结构划分:B Tree索引、Hash索引、FULLTEXT全文索引、R Tree索引 从应用层次划分:普通索引、唯一索引、主键索引、复合索引 从索引键值类型划分:主键索引、辅助索引(二级索引) 从数据存储和索引键值逻辑关系划分:聚集索引(聚簇索引)、非聚集索引(非聚簇索引) 1.1 普通索引 这是最基本的索引类型,基于普通字段建立的索引,没有任何限原创 2021-02-15 10:14:18 · 261 阅读 · 0 评论 -
MySQL高级系列(一)—— MySQL架构原理
第一部分 MySQL架构原理 第1节 MySQL体系架构 MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层。 一、网络连接层 客户端连接器(Client Connectors):提供与MySQL服务器建立的支持。目前几乎支持所有主流的服务端编程技术,例如常见的 Java、C、Python、.NET等,它们通过各自API技术与MySQL建立连接。 二、服务层(MySQL Server) 服务层是MySQL Server的核心,主要包含系统管理和控制工具、连接池原创 2021-02-13 11:27:54 · 4561 阅读 · 3 评论