您的位置:首页 > 数据库 > MySQL

MySQL技术内幕 InnoDB存储引擎(一)

2016-12-06 23:02 369 查看
第一章-MySQL体系结构和存储引擎

1定义数据库和实例

“数据库”(database)和“实例”(instance)是两个容易被混淆的概念。
其中,数据库是指:物理操作系统文件或其他形式文件类型的集合 。
实例是指:MySQL数据库由后台线程以及一个共享内存区组成。
数据库实例才是真正用于操作数据库文件的。
所以当我们启动数据库时,是启动了一个数据库实例。

2.MySQL体系结构



MySQL 由以下几部分组成:
连接池组件
管理服务和工具组件
SQL接口组件
查询分析器组件
优化器组件
缓冲组件
插件式存储引擎
物理文件

MySQL区别于其他数据库的最重要的一个特点就是其插件式的表存储引擎。MySQL插件式的存储引擎架构提供了一系列标准的管理和服务支持。这些标准与存储引擎本身无关,可能是每个数据库系统本身都必需的,如SQL分析器和优化器等,而存储引擎是底层物理结构的实现。

需要特别注意的是:存储引擎是基于表的,而不是数据库。所以当我们在建表的时候,需要标注使用的存储引擎,否则数据库系统会选用默认配置。

3.MySQL存储引擎

MySQL是插件式体系结构。每个存储引擎都有各自的特点。用户可以根据其不同的特点来选用。并且由于MySQL的开源性,可以根据数据库预定义的存储引擎接口编写自己的存储引擎。

下面是一些存储引擎的介绍:

(1)InnoDB存储引擎
从MySQL5.5.8开始,InnoDB为其默认的存储引擎、它支持事物,特点是:行锁设计、支持外键、并支持类似于Oracle的非锁定读。InnoDB是MySQL最为常用的一种引擎,而Facebook,Google,Yahoo!等公司的成功应用已经证明了InnoDB具备高可用性、高性能以及高可扩展性。

(2)MyISAM存储引擎
MyISAM不支持事务,表锁设计,支持全文索引,主要面向一些OLAP数据库应用(数据查询的应用)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息