MySQL体系结构和存储引擎介绍
1.1、定义数据库和实例
数据库:物理操作系统文件或其他形式文件类型的集合。在MySQL数据库中,数据库文件可以是frm、MYD、MYI、ibd结尾的文件。
实例:MySQL数据库由后台线程以及一个共享内存区组成。共享内存区可以被运行的后台线程所共享。需要牢记的是,数据实例才是真正用于操作数据库文件的。
在MySQl数据库中,实例与数据库的关系通常是一 一对应的,即一个实例对应一个数据库,一个数据库对应一个实例。但是,在集群情况下可能存在一个数据库被多个实例使用的情况。
MySQL被设计为一个单进程多线程的数据库,这点与SQL Server比较类似,但与Oracel多进程的架构有所不同(Oracel的Windows版本也是单进程多线程架构的)。这也就是说,MySQL数据库实例在系统上的表现就是一个进程。
1.2、MySQL体系结构
从概念上来说,数据库时文件的集合,是依照某种数据模型组织起来并存放于二级存储器中的数据的集合;数据库实例是程序,是位于用户与操作系统之间的一层数据管理软件,用户对数据库数据的任何操作,包括数据库定义、数据查询、数据维护、数据库运行控制等都是在数据库实例下进行的,应用程序只有通过数据库实例才能和数据库打交道。
1.3、MySQL存储引擎
存储引擎的好处是每个存储引擎都有各自的特点,能够根据具体的应用简历不同存储引擎表。对于开发人员来说,存储引擎对其是透明的,但了解各种存储引擎的区别对于开发人员来说也是有好处的。
1.3.1、InnoDB 存储引擎
InnoDB存储引擎支持事务,其设计目标主要是面向在线事务处理(OLTP)的应用。其特点是行锁设计、支持外键,并支持类似于Oracel的非锁定读,即默认读取操作不会产生锁。从MySQL数据库5.5.8版本开始,InnoDB存储引擎是默认的存储引擎。
1.3.2、MyISAM存储引擎
MyISAM存储引擎不支持事务、表锁设计,支持全文索引,主要面向一些OLAP数据库应用。
此外,常用的存储引擎还有NDB存储引擎、Memory存储引擎、Archive存储引擎、Federated存储引擎、Maria存储引擎等。
1.4、连接MySQL
连接MySQL的操作是一个连接进程和MySQL数据库实例进行通信。从程序设计角度,本质上是进程通信。如果对进程通信比较了解,可以知道常用的进行通信方式有管道、命名管道、命名名字、TCP/IP套接字、UNIX域套接字。
上一篇: php storm全局搜索怎么打开?