MySQL架构与历史

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL架构与历史

第一章 MySQL架构与历史


之前没有学过MySQL,借此机会边看课程边翻书,加油!


1.1 MySQL逻辑架构

  • 最上层

连接处理、授权处理、安全等

  • 第二层

存储过程、触发器、视图等

  • 第三层

存储引擎


image.png


1.2 并发控制

1.2.1 读写锁

  • 共享锁(读锁):多个用户在同一时刻可以读取同一资源,而互不干扰
  • 排它锁(写锁):一个写锁会阻塞其他的写锁和读锁


1.2.2 锁策略

  • 表锁

最基本、开销最小的锁策略

写锁请求优先级更高


  • 行级锁

开销大

支持并发处理


1.3 事务

如果数据库引擎能够成功地对数据库应用该组查询的全部语句,就执行该组查询;如果其中有任何一条语句因为某些原因无法执行,那么所有语句都不会执行。


1.3.1 ACID

  • atomicity(原子性):不能只执行其中的一部分操作
  • consistency(一致性):数据库总是从一个一致性的状态转换到另一个一致性的状态
  • isolation(隔离性):一个事务所做的修改在最终提交以前,对其他事务是不可见的。
  • durability(持久性):一旦事务提交,则其所做的修改就会永久保存到数据库中。


1.3.2 隔离级别


image.png


1.3.3 死锁

两个或多个事务在同一资源上相互占用,并请求锁定对方占用的资源,从而导致恶性循环的现象。当多个事务视图以不同的顺序锁定资源时,就可能会产生死锁。


  • InnDB处理死锁的方法

将持有最少行级排它锁的事务进行回滚


1.3.4 事务日志

存储引擎在修改表的数据时,只需要修改其内存拷贝,再将修改行为记录到持久在硬盘上的事务日志中,而不用每次都将修改的数据本身持久到磁盘。


1.4 多版本并发控制


1.5 MySQL的存储引擎

1.5.1 InnoDB存储引擎(*)

设计用来处理大量的短期事务,这类事务大多数情况是正常提交的,很少会回滚。


1.5.2 MyISAM存储引擎

在MySQL5.1及之前的版本,这是默认的存储引擎。提供了大量的特性,包括全文索引、压缩、空间函数(GIS)等,但不支持事务和行级锁,且崩溃后无法安全恢复


  • 特性:
  1. 加锁与并发
  2. 修复
  3. 索引特性
  4. 延迟更新索引建


1.5.3 选择合适的引擎

我们知道MySQL有内建的其他存储引擎,还有第三方存储引擎;大多数情况下,InnoDB都是正确的选择,所以在MySQL5.5版本时将InnoDB作为默认的存储引擎了。

除非需要用到某些InnoDB不具备的特性,并且没有其他办法可以替代,否则都应该优先选择InnoDB引擎。


  • 日志型应用:MyISAM或者Archive

开销低

插入速度快


  • 只读或者大部分情况下只读的表

不介意崩溃恢复问题,选用MyISAM

MyISAM引擎在一开始可能没有任何问题,应用压力上升可能会迅速恶化


  • 订单处理:InnoDB

支持事务是必要选项


  • 电子公告牌和主体讨论论坛:


  • CD-ROM应用:可以考虑MyISAM表或者压缩表


  • 大数据量:Infobright

数据量在10TB以上的级别


1.5.4 转换表的引擎

书中介绍了三种方法,及各自的优缺点。

  1. ALTER TABLE
  2. 导入与导出
  3. 创建与查询(CREATE和SELECT)


1.6 MySQL时间线(Timeline)

由于时间问题暂时未读


1.7 MySQL的开发模式

目前已基本稳定,在Oracle定期发布的新里程碑开发版本中,会包含即将在下一个GA(Generally Available)版本发布的新特性。MySQL遵循GPL开源协议,全部的源代码(除了一些商业版本的插件)都会开放给社区。


总结

InnoDB对大多数用户是最佳选择。

本周阅读时间仓促,相信在下面时间的学习中自己可以多应用、多理解。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
13天前
|
SQL 存储 关系型数据库
MySQL架构
【5月更文挑战第21天】MySQL架构
22 1
|
19天前
|
SQL canal 运维
MySQL高可用架构探秘:主从复制剖析、切换策略、延迟优化与架构选型
MySQL高可用架构探秘:主从复制剖析、切换策略、延迟优化与架构选型
|
19天前
|
运维 负载均衡 关系型数据库
MySQL高可用解决方案演进:从主从复制到InnoDB Cluster架构
MySQL高可用解决方案演进:从主从复制到InnoDB Cluster架构
|
19天前
|
关系型数据库 MySQL 数据库
MySQL集群 双主架构(配置命令)
MySQL集群 双主架构(配置命令)
|
19天前
|
设计模式 容灾 关系型数据库
MySQL 主从复制架构
MySQL 主从复制架构
|
19天前
|
缓存 小程序
Java+saas模式 智慧校园系统源码MySQL5.7+ elmentui前后端分离架构 让校园管理更高效的数字化平台系统源码
智慧校园是在数字通增强版基础上,研发的一套面向教育行业的数字化校园软件,其显著特点是集学校网站、协同办公、即时通讯、网络空间、移动办公于一体。在满足教职工日常办公需要的同时,拥有诸多教育行业功能,并提供便捷易用的“家校通”平台以满足老师、学生、家长的日常交流。数字通智慧校园教育版中的协同办公、即时通讯、移动办公等功能模块随通用版一同改进,将网络办公最新技术应用到教育行业。
49 1
|
19天前
|
SQL 存储 缓存
mysql 逻辑架构
mysql 逻辑架构
|
3天前
|
敏捷开发 负载均衡 监控
探索微服务架构下的API网关设计与实践
【5月更文挑战第31天】本文将深入剖析微服务架构中的关键组件——API网关,探讨其设计理念、核心功能以及在实际项目中的应用。我们将从API网关的基本概念出发,逐步展开对其路由、负载均衡、认证授权、监控日志等方面的详细讨论,并结合实际案例,分析如何高效地实现和管理一个稳定的API网关。
|
3天前
|
缓存 监控 安全
微服务架构下的API网关设计与实践
【5月更文挑战第31天】本文深入探讨了在微服务架构中,API网关的核心作用与设计策略。通过分析网关的职责、选型标准及实现细节,文章为读者提供了一套完整的API网关解决方案。同时,结合具体案例,展示了如何在实际应用中有效部署和优化API网关,确保系统的高可用性和可扩展性。
|
3天前
|
API 开发者 微服务
探索后端开发中的微服务架构
【5月更文挑战第31天】在数字化浪潮中,微服务架构如星辰般熠熠生辉,为后端开发领域带来革命性的创新。本文将深入探讨微服务架构的精髓,从其定义、核心优势到实际应用,展现这一技术如何在复杂业务场景下提供灵活、高效的解决方案。我们将一同见证微服务如何助力企业快速响应市场变化,实现技术的可持续发展。