数据库和实例
数据库:物理操作系统文件或其他形式文件类型的集合。
实例:MySQL数据库由后台线程以及一个共享内存区组成。
在MySQL数据库中,实例与数据库的关系通常是一一对应的,即一个实例对应一个数据库,一个数据库对应一个实例。但在集群情况下,可能存在一个数据库被多个数据实例使用的情况。
MySQL被设计为一个单进程多线程架构的数据库,MySQL数据库实例在系统上的表现就是一个进程。
MySQL结构体系
MySQL 由以下几部分组成:
1.连接池组件
2.管理服务和工具组件
3.SQL接口组件
4.查询分析器组件
5.优化器组件
6.缓冲组件
7.插件式存储引擎
8.物理文件
MySQL区别于其他数据库的最重要的一个特点就是其插件式的表存储引擎。MySQL插件式的存储引擎架构提供了一系列标准的管理和服务支持。这些标准与存储引擎本身无关,可能是每个数据库系统本身都必需的,如SQL分析器和优化器等,而存储引擎是底层物理结构的实现。
需要特别注意的是:存储引擎是基于表的,而不是数据库。所以当我们在建表的时候,需要标注使用的存储引擎,否则数据库系统会选用默认的配置。
MySQL存储引擎
MySQL数据库的核心在于存储引擎。
1)InnoDB存储引擎
InnoDB存储引擎支持事务,其设计目标主要面向在线事务处理(OLTP)的应用。其特点是行锁设计,支持外接,并支持类似于Oracle的非锁定读,即默认读取操作不会产生锁。从MySQL5.5.8开始,InnoDB存储引擎是默认的存储引擎。
2)MyISAM引擎
MyISAM不支持事务,表锁设计,支持全文索引,主要面向一些OLAP数据库应用。
可以通过SHOW ENGINES语句查看当前使用的MySQL数据库所支持的引擎,或者通过查找information_schema架构下的ENGINES表