MySQL架构
1、MySQL的逻辑视图
MySQL的存储引擎架构可以将查询处理和服务器任务与数据的存储/提取相分离
第一层的主要作用是提供客户端和数据库之通信服务,例如连接处理
授权处理、安全认证等。
第二层是MySQL的核心。它提供了查询解析、优化缓存内建函数(日期、时间);同时各种的存储引擎提供的功能也在这一层体现,如存储过程、触发器、视图功能。
第三层是MySQL的存储引擎,存储引擎主要负责存储和提取所有存放在MySQL中的数据。在存储引擎中,锁管理是个非常重要的议题,常见的锁测量有表锁和行锁,行锁已经在InnoDB和Falcon存储引擎中已经实现。整个逻辑框图除存储引擎之外的部分都可以看做是服务器层。
2、事务管理
简而言之事物管理就是ACID的概念。
A:Atomicity原子性:一个事物需要被视为不可分割的一部分,整个事物包含的业务逻辑需要确保全部执行或全部回滚。
C:Consistency 一致性:数据库执行事物从一个状态到另外一个状态的转换,当事物操作失败时不会导致原有数据的丢失或改变。
I:Isolation 隔离性:是指事物的不可见性,当一个正在执行的事务正在执行时,中间结果对其他数据库用户不可见。
D:Durability 持久性:一旦一个事物执行完毕,那么数据库中已经改变的数据是永久存在的。
3 数据库的隔离级别
Read Uncommitted 读取未提交,一个事物在未提交之前其结果不能被其他用户可见,比如A用户修改了表user中某行记录的名词,在未提交事物之前,其它用户看到该行记录的名词任然是之前的名称,读取未提交是数据又称之为脏的读。
Read Committed 读取已提交,一个事务从开始到结束之间的任何中间结果都是不可见的,除非已经提交。用户查看同一语句的结果可能不同,又称之为不可重复读。
Repeatable Read 可重复读,它确保了同一个事务的多个实例并发读取数据时,看到相同的结果,但如果有其它事务插入数据,用户在读取数据时会有幻影行,幻读。
MySQL默认的隔离级别是读未提交,也是最低的隔离级别
例如可以通过如下语句查询:
Select @@tx-isolation;
也可通过如下的命令设置隔离级别:
Set session transaction isolation level read commtted
MySQL的事务管理是在存储引擎实现的,因此MySQL存储引擎的不同也体现在存储引擎是否支持事物操作,例如InnoDB是支持事物操作的而MyISAM是不支持事物操作的。
3、常见的存储引擎
如何查看一个表的使用何种存储引擎可以通过如下命令
Show table status like ‘表名’;
MyISAM存储引擎
一般来讲,该引擎将每个表存储成两个文件:数据文件和索引文件,分别为后缀为.MYD和.MYI格式的文件。MyISAM格式是平台通用的,使用该存储引擎的表可以包含动态行和静态行,可容纳大大小只受限于磁盘空间的大小和操作系统所允许的最大文件大小。MySQL5默认含有可变长定义的MyISAM表可以支持256T的数据处理,并使用6字节的指针记录数据,用户也可在创建表时创建项MAX_ROWS AVG_ROW_LENGTH,用户可以使用该选项创建表的大小。
Create table tablename{
Id integer not null primary key,
Des char(18) not null
} MAX_ROW=1000000000 AVG_ROW_LENGTH = 32
查看结果
Show table status like ‘tablename’;
特性:加锁与并发,自动、手工修复,支持全文索引
InnoDB存储引擎
该引擎支持事物,特别是短期处理,不需要回滚的事物,并支持四种事物的隔离级别,但是不能根据排序建立索引,查询速度相对MyISAM比较慢。
相关推荐
《MySQL内核:InnoDB存储引擎 卷1》由资深MySQL专家,机工畅销图书作者亲自执笔,在以往出版的两本InnoDB介绍性图书的基础之上,更深入地介绍InnoDB存储引擎的内核,例如latch、B+树索引、事务、锁等,从源代码的...
1. MySQL体系结构和存储引擎 2. InnoDB存储引擎 2.1 InnoDB体系结构 2.2 Checkpoint技术 2.3 Master Thread工作方式 2.4 InnoDB关键特性 3. 文件 3.1 参数文件 3.2 日志文件 3.3 套接字文件 3.4 pid文件 ...
InnoDB作为MySQL中最常用且最重要的存储引擎,负责处理事务处理、数据完整性以及并发控制等关键任务,因此对它的深入理解对于数据库管理员和开发者至关重要。 InnoDB存储引擎是MySQL中的默认存储引擎,特别适合需要...
InnoDB是事务型数据库的首选引擎,为MySQL提供了具有提交、回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎,其它存储引擎都是非事务安全表,支持行锁定和外键,MySQL5.5以后默认使用InnoDB存储引擎。 ;2.MyISAM
本书的内容包括了InnoDB的存储引擎概述、内部架构、工作机制、性能优化、事务处理、恢复机制、内存管理、磁盘I/O、数据字典、索引设计、锁和并发控制等核心内容。本书还详细介绍了InnoDB的内部存储格式、物理存储...
MySQL存储引擎是数据库管理系统中负责数据存储和索引管理的核心组件,它允许MySQL数据库系统在不同的存储需求下灵活选择最优的存储方案。在众多数据库系统中,MySQL独树一帜,提供了多种存储引擎供用户选择,使得...
《MySQL技术内幕:InnoDB存储引擎》是国内目前唯一的一本关于InnoDB的著作,由资深MySQL专家亲自执笔...《MySQL技术内幕:InnoDB存储引擎》适合所有希望构建和管理高性能、高可用性的MySQL数据库系统的开发者和DBA阅读。
MySQL 存储引擎是 MySQL 数据库管理系统中的一种机制,用于管理和存储数据。 MySQL 提供了多种存储引擎,每种引擎都有其特点和优缺。了解 MySQL 存储引擎的特点和优缺是非常重要的,因为它们直接影响着数据库的性能...
- InnoDB是MySQL的默认存储引擎,它支持事务处理和行级锁定,这使得InnoDB在并发环境下表现出色,适用于需要高数据一致性和事务安全性的应用。 - InnoDB使用聚集索引,主键值被存储在每个数据行中,如果没有指定...
MySQL存储引擎和索引揭秘的内容涉及了数据库存储机制的核心概念,对于理解MySQL数据库的运作至关重要。存储引擎是MySQL数据库的核心组件,负责数据的存储和提取,支持不同的表类型和数据管理技术。 首先,存储引擎...
在MySQL数据库系统中,存储引擎扮演着极其重要的角色,它决定了数据如何被存储、检索和管理。其中,InnoDB作为MySQL中最常用的存储引擎之一,提供了众多高级特性,如事务支持、行级锁定以及外键约束等。本文将详细...
在MySQL数据库中,InnoDB存储引擎扮演着至关重要的角色,它是支持事务处理、行级锁定以及外键约束的主要引擎。InnoDB的引入使得MySQL能够满足企业级应用的需求,提供了高度的数据一致性与可靠性。 首先,InnoDB的...
### MySQL插件式存储引擎体系结构详解 ...综上所述,MySQL插件式存储引擎体系结构为用户提供了一个高度灵活的选择框架,可以根据具体的业务需求选择最合适的存储引擎,从而最大程度地提高应用的性能和效率。
MySQL是世界上最流行的关系型数据库管理系统之一,其强大的功能和灵活性主要得益于它支持多种存储引擎。在MySQL课程中,深入理解存储引擎是至关重要的,因为不同的存储引擎有着不同的特性和适用场景,这直接影响到...
- **基础描述**:MyISAM是MySQL早期版本的默认存储引擎,不支持事务处理和行级锁,但提供了全文索引支持。 - **特点描述**: - **锁表机制**:在读取数据时使用共享锁,在写入数据时使用排他锁。 - **全文索引**...
MySQL存储引擎是数据库管理系统的核心组件,它决定了数据如何被存储、检索和管理。在MySQL中,不同的存储引擎提供了不同的特性和功能,以适应各种应用场景。本文将深入探讨两种常见的存储引擎——InnoDB和MyISAM,并...
MySQL存储引擎是MySQL数据库管理系统的核心组件之一,负责数据的存储和提取。 MySQL的存储引擎架构可以分为四个层次:连接层、服务层、引擎层和存储层。其中,引擎层是存储引擎的真正实现者,它们之间可以根据不同...
存储引擎层位于最下层,负责MySQL中的数据存储和提取,支持事务处理,不同存储引擎有其特定的功能和特性。 在存储引擎层,常见引擎包括MYISAM和InnoDB。MYISAM引擎不支持事务处理,但执行速度较快,适合用于只读或...
MySQL存储引擎是数据库管理系统的核心组件,它决定了数据如何在MySQL中存储、检索和管理。不同的存储引擎具有不同的特性和用途,以适应各种应用场景。在MySQL中,存储引擎主要负责数据的物理存储方式、事务处理、...
MySQL是世界上最受欢迎的开源数据库系统之一,而InnoDB存储引擎是其最常用的核心组件,尤其在处理事务性和ACID(原子性、一致性、隔离性、持久性)需求方面。本资料包包含三本关于MySQL和InnoDB的重要书籍,分别是...