1.1存储引擎的使用
是 mysql 特有的
- 数据库中的各表在创建的时候指定存储引擎来处理。
- mysql 默认引擎为INnoDB:
- 指定语句为ENGINE= INnoDB。
- 默认的字符集为UFT-8。
1.2什么是存储引擎
- 存储引擎只有MySQL中存在。Oracle中有相对应的机制叫做存储方式,没有特殊的名字。
- 每一个存储引擎都对应一个不同的存储方式,每一个存储方式都有自己的优缺点,需要在合适的时机选择合适的存储引擎。
- 查看存储引擎:
- show engines \G
1.3 MYISAM 存储引擎
- 存储方式
Engine: MyISAM
Support: YES
Comment: MyISAM storage engine
Transactions: NO
XA: NO
Savepoints: NO
- 不支持事务
- 是MySQL最常用的存储引擎。但不是默认的。
- 使用三个文件表示一个表:
- 格式文件(mytable.frm)--format
- 数据文件(mytable.MYD)--data
- 索引文件(mytable.MYI)--index
- 可被转换成压缩,只读表来节省空间。
1.4 INnoDB存储引擎
Engine: InnoDB
Support: DEFAULT
Comment: Supports transactions, row-level locking, and foreign keys
Transactions: YES
XA: YES
Savepoints: YES
- 支持事务、行级锁、外键,这种存储引擎的数据的安全得到保障,
- 表的结构在目录中以.frm格式表示。
- INnoDB表空间tablespace被用于存储表的内容。(一种逻辑概念)
- 提供日志文件来存储表的操作记录。
- 在MySQL服务器崩溃后提供自动恢复机制。
- 支持外键及应用的完整性,支持级联删除和更新。
1.5 MEMORY存储引擎
Engine: MEMORY
Support: YES
Comment: Hash based, stored in memory, useful for temporary tables
Transactions: NO
XA: NO
Savepoints: NO
- 不支持事务,数据容易丢失,所有数据在内存中。
- 查询速度最快。
- 格式以.frm存储。
- 数据和索引直接在内存中。(危险!)断电易丢!