一、简介
1、数据库
物理操作系统文件,或其他形式类型文件的集合
【数据库:就是一个个文件,是文件的集合,是依照某种数据模型组织起来并存放于存放于二级存储器的数据集合。】
2、 实例
MySQL 数据库由后台线程以及一个共享内存区组成。
【数据库实例:是程序,是位于用户与操作系统之间的一层数据库管理软件,用于对数据库数据的操作】
3、总计
MySQL 设计成一个单进程多线程的数据库
集群情况下可能存在一个数据库被多个实例使用的情况。
- 特点之一 : 插件式的表存储引擎。
存储引擎基于表 ,而不是数据库。
二、InnoDB存储引擎
1、介绍
- InnoDB 存储引擎支持事务,设计目标主要是在线事务处理【OLTP】的应用。
- 设计特点 行锁设计、支持外键、支持非锁定读【默认读取操作不会产生锁】。
- InnoDB存储引擎将数据放在一个逻辑的表空间中,由引擎自身管理,它可以将每个InnoDB存储引擎的表单独存放到一个独立的ibd文件中。
- InnoDB 通过使用多版本并发控制(MVCC)获得高并发性,实现了四种隔离级别【RB级别】。同时使用一种称为next-keylockiing的策略来避免幻读现象的产生。此外,InnDB存储引擎还提供了插入缓冲【insert buffer】 、二次写【double write】、自适应哈希索引【adapttive hash index】、预读【read ahead】等高性能和高可用的功能。
- InnoDB存储引擎采用了聚集【clustered】的方式,因此每张表的存储都是按照主键的顺序进行存放。
如果没有显示的在表定义时制定主键,InnoDB 存储引擎会为每一行生成一个6字节的 ROWID,并以此作为主键。
三、MyISAM存储引擎
1、介绍
- MyISAM存储引擎不支持事务,表锁设计,支持全文索引,主要面向一些【OLAP】数据库应用。
- MyISAM存储引擎由表MYD 和 MYI 组成,MYD用来存放数据文件,MYI用来存放索引文件。而MYISAM的缓冲池只缓冲【cach】索引文件,而不缓冲数据文件。