
在建表的时候,我们都会在表中指定存储引擎,这个引擎有很多种。
首先,我们可以通过 SHOW ENGINES 命令查看我们的存储引擎,我这里用的是阿里云rds数据库,也就是mysql5.6版本。
如果修改现有表的引擎通过这个语句:ALTER TABLE TABLE_NAME ENGINE = INNODB;
下面介绍下最常见的三种存储引擎,MyISAM,InnoDB,MEMORY,日常工作中大部分用的还是默认的InnoDB,不做web开发,主要做报表存放。
1、MyISAM存储引擎
- MyISAM存储引擎是MySQL最常用的引擎。
- 它管理的表具有以下特征:
- 使用三个文件表示每个表:
- 格式文件 — 存储表结构的定义(mytable.frm)
- 数据文件 — 存储表行的内容(mytable.MYD)
- 索引文件 — 存储表上索引(mytable.MYI)
- 灵活的AUTO_INCREMENT字段处理
- 可被转换为压缩、只读表来节省空间
- 使用三个文件表示每个表:
2、InnoDB存储引擎
- InnoDB存储引擎是MySQL的默认引擎。
- 它管理的表具有下列主要特征:
- 每个InnoDB表在数据库目录中以.frm格式文件表示
- InnoDB表空间tablespace被用于存储表的内容
- 提供一组用来记录事务性活动的日志文件
- 用COMMIT(提交)、SAVEPOINT及ROLLBACK(回滚)支持事务处理
- 提供全ACID兼容
- 在MySQL服务器崩溃后提供自动恢复
- 多版本(MVCC)和行级锁定
- 支持外键及引用的完整性,包括级联删除和更新
3、MEMORY存储引擎
- 使用MEMORY存储引擎的表,其数据存储在内存中,且行的长度固定,这两个特点使得MEMORY存储引擎非常快。
- MEMORY存储引擎管理的表具有下列特征:
- 在数据库目录内,每个表均以.frm格式的文件表示。
- 表数据及索引被存储在内存中。
- 表级锁机制。
- 不能包含TEXT或BLOB字段。
MEMORY存储引擎以前被称为HEAP引擎。
4、引擎选择方式
- MyISAM表最适合于大量的数据读而少量数据更新的混合操作。MyISAM表的另一种适用情形是使用压缩的只读表。
- 如果查询中包含较多的数据更新操作,应使用InnoDB。其行级锁机制和多版本的支持为数据读取和更新的混合操作提供了良好的并发机制。
- 可使用MEMORY存储引擎来存储非永久需要的数据,或者是能够从基于磁盘的表中重新生成的数据。
4428

被折叠的 条评论
为什么被折叠?



