【01】存储引擎简介存储引擎负责数据的存储和检索。MySQL支持多种存储引擎,并且存储引擎可以更换,所以称为插件式存储引擎。每个存储引擎都有自己的特点和应用场景。重要的是要注意存储引擎是基于表的,而不是数据库。[02]存储引擎的分类首先,数据库支持哪些存储引擎,可以使用如下命令查看:showengines;如何检查现有表使用哪个存储引擎?可以使用DDL建表语句,命令如下:showcreatetabletable_name;--例:ENGINE=InnoDB在MySQL服务器上,表具体是怎么存储的?数据文件的存放路径可以通过以下命令查看:showvariableslike'datadir';--/var/lib/mysql/默认情况下,每个库对应一个文件夹,不管是什么类型的存储引擎tableuses,会有一个扩展名为frm.table的表结构定义文件。不同类型的存储引擎以不同的文件格式存储数据,如下所示。下面介绍几种常见的存储引擎:1、InnoDBMySQL5.7默认的存储引擎,数据存储在ibd文件中,里面也存储了相关的索引数据。特点:支持事务和外键,数据完整性和一致性更高。支持行级锁和表级锁。支持读写并发,写不阻塞读(MVCC)。特殊的索引存储方式可以减少IO,提高查询效率。适用于频繁更新的表或有并发读写或事务处理的业务系统。2、MyISAMMySQL5.5之前的默认存储引擎,数据存储在MYD文件中,相关索引数据存储在MYI文件中。表级锁定限制了读/写性能,因此它通常用于Web和数据仓库配置中的只读或读主导工作。特点:支持表级锁。不支持交易。存储表的行数(计数更快)。适用于只读或基于读取的数据分析项目。3、内存的特点:数据保存在内存中,所以读写速度非常快,但是如果数据库重启或者死机,所有的数据都会消失。适用于临时表。4.CSV数据存储在CSV文件中。特点:不支持索引。不允许有空行。可以直接编辑。适用于不同数据库之间的导入导出。5、Archive采用压缩协议进行数据存储,数据以ARZ文件格式存储。特点:不支持索引,不支持更新删除。适用于数据备份。以上是MySQL中一些常用的存储引擎。[03]如何选择存储引擎如果对数据一致性要求高,需要事务支持,可以使用InnoDB。如果是只读或者大部分只读的表,可以使用MyISAM。
