一、MySQL逻辑架构1、逻辑架构图基于下面的逻辑架构图,可以大致熟悉MySQL各个架构组件之间的协同工作关系。 很经典的C/S架构风格,即客户端/服务端模式。 2、分层描述
通常会进行连接池管理,连接用户权限认证,安全管理等操作。 可以通过如下命令查看连接配置信息:
第二层架构封装MySQL一系列核心操作,查询解析、优化、缓存、内置函数、触发器、视图等,跨存储引擎的功能都在这一层实现。
MySQL的最底层封装,也是最核心的功能,不同的存储引擎有不同的特点功能,共同点是处理数据的存储和提取。 二、概念简介1、存储引擎MySQL数据库存储引擎是数据库底层的架构组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还具有不同的特点功能,以满足不同场景下的业务需求。 2、支持关系可以通过下面两个命令查看MySQL当前版本,和对存储引擎的支持情况。 SELECT VERSION() ; SHOW ENGINES ; 可以看出本地环境是MySQL5.7,支持如下几种存储引擎: 该版本下默认的存储引擎是: 三、常见存储引擎1、InnoDB引擎(1)、基本描述 InnoDB引擎是MySQL默认的事务型引擎,使用非常广泛,极擅长处理短期事务,具有自动崩溃恢复的特性,在日常开发中,一般都要求使用该引擎。 (2)、架构图解
该图片来自MySQL官网文档。 整体分三层:内存结构,Cache,磁盘结构。
内存结构又包括四大组件
(3)、特点描述
事务内在执行一组SQL语句时,要么全部成功,要么全部失败。
分布式事务指即使不同操作位于不同的服务应用上,仍然需要保证事务的特性。常见场景:订单和库存在不同的服务中,但却能保持一致性。
加锁时锁定一行数据的锁机制就是行级别锁定(row-level)。MySQL5.7版本中只有InnoDB引擎支持。锁定的粒度小,自然支持的并发就高,锁定的机制也随之变的复杂。
多版本并发控制,通过保存数据在某个时间点的快照来实现的。这意味着一个事务无论运行多长时间,在同一个事务里能够看到数据一致的视图。根据事务开始的时间不同,同时也意味着在同一个时刻不同事务看到的相同表里的数据可能是不同的。
是一种对磁盘上实际数据重新组织以按指定的一个或多个列的值排序。由于聚簇索引的索引页面指针指向数据页面,所以使用聚簇索引查找数据几乎总是比使用非聚簇索引快。 2、MyISAM引擎(1)、基础描述 MySQL5.1和之前版本的默认存储引擎,不支持事务和行级锁,自然崩溃之后不能自动恢复。 (2)、特点描述
对整张表加锁,不针对行加锁,读数据加共享锁,写数据加排他锁。
支持全文索引,一种基于分词创建的索引,可以支持复杂的检索查询。 3、其他引擎在MySQL的体系中,最常使用的就是InnoDB和MyISAM引擎,其他多样的存储引擎可以根据业务需求再去熟悉。
四、存储引擎选择在公司的开发规范中,一般硬性要求使用InnoDB引擎,除非有怪癖的业务InnoDB无法支持。 五、源代码地址GitHub·地址 https://github.com/cicadasmile/mysql-data-base GitEE·地址 https:///cicadasmile/mysql-data-base |
|
来自: python_lover > 《待分类》