MySQL 支持多种不同的存储引擎,也称为表格类型。
一、MySQL 存储引擎
1. MyISAM
MyISAM 是 MySQL5.5 之前的版本使用的默认存储引擎,这种表格类型是基于传统的 ISAM
类型(Indexed Sequential Access Method,带索引顺序访问方法),是一种存储记录和文件的标准方法。MyISAM 引擎的特点在于具有检查和修复表格的工具,此外,MyISAM 表格可以被压缩,支持全文搜索。MyISAM 的缺点是不支持外键,不是事务安全的类型,因此对于一般不需要特别保证数据读写安全的表格,MyISAM 是不错的选择。
2. InnoDB
MySQL5.5 之后的版本中默认使用 InnoDB 作为存储引擎,InnoDB 是一种事务安全型的存储引擎,所以可以使用 COMMIT
提交和 ROLLBACK
回滚的功能,InnoDB 还支持外键功能,显然, InnoDB 非常适用于对数据操作安全性和实时性非常高的业务,大多 WEB 应用中,通常都是使用 MyISAM 和 InnoDB 引擎作为主要的表格存储引擎。InnoDB 相对与 MyISAM 的缺点是操作执行的耗时要相对久一些。
3. MEMORY
(HEAP
)
MEMORY 引擎通过建立哈希索引,将表数据存放在内存中。数据存放在内存中的优点和缺点都显而易见,从内存中读写数据的速度非常快,但数据的安全性缺非常低,如果系统发生崩溃、断电,内存中的数据会立即丢失,并且通常情况下是无法修复的。因此,MEMORY 引擎适合用来存储临时建立的表格数据或者派生而来的数据表。为了防止数据库中大量写入的数据吞噬系统内存,MEMORY 引擎要求在 CREATE TABLE
语句中指定 MAX_ROWS
,此外,使用 MEMORY 引擎的表格中不能使用 BLOB
、TEXT
或者 AUTO_INCREMENT
格式的列。
4. MERGE
MERGE 引擎允许用户在使用查询时候,将多个 MyISAM 表的集合作为一个单独的表,这样操作的优点是可以避开某些操作系统中最大文件大小的限制。
5. ARCHIVE
ARCHIVE 表中保存了大量的数据,但是只有少量的脚注。ARCHIVE 表只支持 INSERT
、SELECT
操作,不支持 DELETE
、UPDATE
和 REPLACE
,此外索引功能也不被 ARCHIVE 支持。
6. CSV
CSV 引擎将数据库中的数据通过逗号间隔之后,保存再系统中的单个文件中,这样操作的目的是为了方便系统中其它应用类似 EXCEL 的应用可以便捷地打开并查看数据。
二、MySQL 配置存储引擎
可以在创建表格时候指定使用的存储引擎:
CREATE TABLE table_name TYPE = table_type ......;
对于已经创建的表格,可以通过 ALTER
命令,修改原来的存储引擎:
ALTER TABLE table_name TYPE = table_type ......;