表类型和存储引擎
- mysql表类型由存储引擎决定,主要包括MYISQM、INNODB、MEMORY等
- MYSQL数据表主要支持六种类型,分别是:csv、memory、archive、mrg_myisam、myisam、innodb
- 这六种又分为两类,一类是“事务安全型”(transaction-safe),比如:innodb;其余都属于第二类,称为“非事务安全性”(non-transaction-safe
- )【myisam和memory】
细节说明
重点介绍三种:MYISAM、INNODB、MEMORY
- MYISAM不支持事务,也不支持外键,但其访问速度快,对事物完整性没有要求
- INNODB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是比起MYISAM存储引擎,innodb的处理效率会差一些,并且会占用更多的磁盘空间以保留数据和索引
- MEMORY存储引擎使用存在内存中的内容来创建表。每个memory表只实际对应一个磁盘文件。memory类型的表访问速度极快,因为它的数据是放在内存中的,并且默认使用hash索引。但是一旦服务关闭,表中数据就会丢失,表的结构还在
如何选择表结构
- 如果应用不需要事务,处理的只是基本的CRUD操作,那么MYISAM是不二选择,速度快
- 如果需要支持事务,选择innodb
- memory存储引擎就是将数据存储在内存中,由于没有磁盘I/O的等待,速度极快。但由于是内存存储引擎,所做的任何修改在服务器重启后都将消失。(经典用法:用户的在线状态)
修改表的存储引擎:
ALTER TABLE 表名 ENGINE=引擎名;