一:数据库和实例

数据库:物理操作系统文件或其他形式文件类型的集合。数据文件包括frm,MYD,MYI,idb结尾文件

实例:MySQL数据库由后台线程以及一个共享内存区组成.数据库实例才是真正由于操作数据库文件的。Mysql数据库实例在系统上的表现就是一个进程. linux 查看 mysql 进程pid:

ps -ef | grep mysqld

二:MySql 体系结构

   

mysql有ping操作吗_InnoDB

从图中可以看出,Mysql由几下部分组成:

连接池组件

管理服务和工具组件

Sql接口组件

查询分析器组件

优化器组件

缓冲组件

插件式存储引擎

物理文件

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

三:MySql存储引擎

3.1 Innodb 存储引擎

Innodb存储引擎支持事物,其设计目标主要面向在线事物处理的应用.其特点是行锁设计,支持外键,并支持类似于Oracle的非锁定读。从5.5.8版本开始为Mysql的默认搜索引擎.

Innodb通过使用多版本并发控制(MVCC)来获得高并发性,并实现了SQL标准的四种隔离级别,默认的是REPEATABLE级别,同时,使用一种被称为next-key locking的策略来避免幻读,除此之外,Innodb存储引擎还提供了插入缓存(Insert buffer)和二次写(Double write),自适应哈希索引,预读等高性能和高可用的功能。

       对于表中数据的存储,采用聚集的方式,因此每张表的存储都是按主键的顺序进行存放。如果没有显式的指定主键,Innodb会为每条记录生成一个rowid作为主键.

3.2 MyISAM存储引擎

     MyISAM存储引擎不支持事务,表锁设计,但是支持全文索引。主要面向一些OLAP(联机分析处理)数据库应用。MyISAM的缓存池只缓存索引文件,不缓存数据文件。

   MyISAM存储引擎表由MYD(D 表示存储数据)和 MYI(I 表示存储索引).5.0 版本前表最大限制4GB,以后是256TB。

3.3 还有其他存储引擎,实际用的较少,不做介绍。感兴趣可以 查看  <<MySQL 技术内幕 Innodb>>