第一章-MySQL体系结构和存储引擎

1.1 定义数据库和实例 1

数据库:物理操作系统文件或其他形式文件类型的集合。在MySQL数据库中,数据
库文件可以是firm、MYD、MYI、ibd 结尾的文件。

实例:MySQL数据库由后台线程以及一个共享内存区组成。共享内存可以被运行
的后台线程所共享。

MySQL是一个单进程多线程架构的数据库

1.2 MySQL体系结构 3

从概念上讲:

数据库是文件的集合,是依照某种数据模型组织起来并存放于二级存储器中的数据集合;

数据库实例是程序,是位于用户与操作系统之间的一层数据管理软件,用户对数据库数据的任何操作,包括数据库定义、数据查询、数据维护、数据库运行控制等都是在数据库实例下进行的。

应用程序只有通过数据库实例才能和数据库打交道。

MySQL数据库的体系结构,如下图所示:

第一章-MySQL体系结构和存储引擎

MySQL 数据库区别于其他数据库的最重要的-一个特点就是其插件式的表存储引擎。

存储引擎是基于表的,而不是数据库。

1.3 MySQL存储引擎 5

MySQL数据库的核心在于存储引擎。

用户为了满足自己特定的需求,可以开发自己的存储引擎。

存储引擎分为MySQL官方存储引擎和第三方存储引擎。

1.3.1 InnoDB存储引擎 6

InnoDB存储引擎特点是行锁设计、支持外键,并支持类似于Oracle的非锁定读,即默认读取操作不会产生锁。

1.3.2 MyISAM存储引擎 7

1.3.3 NDB存储引擎 7

1.3.4 Memory存储引擎 8

1.3.5 Archive存储引擎 9

1.3.6 Federated存储引擎 9

1.3.7 Maria存储引擎 9

1.3.8 其他存储引擎 9

1.4 各存储引擎之间的比较 10

1.5 连接MySQL 13

连接MySOL操作是一个连接进程和MySQL数据库实例进行通信。从程序设计的角度来说,本质上是进程通信。

进程通信方式有管道、命名管道、命名字、TCP/IP套接字、UNIX域套接字。

MySQL数据库提供的连接方式从本质上看都是上述提及的进程通信方式。

1.5.1 TCP/IP 13

1.5.2 命名管道和共享内存 15

1.5.3 UNIX域套接字 15

1.6 小结 15