认识引擎
一、分类(按照是否支持事务:处理事务安全表的引擎和处理非事务安全表的引擎)
存储引擎类型 | 描述 |
MyISAM管理非事务表 | 高速存储、检索能力、全文检索。默认,但可修改。 |
MEMORY(HEAP)管理非事务表 | 将相同结构的MyISAM表合并为一个表。 |
InnoDB事务安全表 | 支持事务,是为处理巨大数据量时的最大性能设计的,它的cpu效率可能是其他任何基于磁盘的关系的数据引擎所不能匹敌的。 |
EXAMPLE | “存根”引擎,可以使用它来创建表,但是不会存储数据和检索数据。 |
NDB Cluster | 分割多台计算机上的表的存储引擎。 |
ARCHIVE | 适合存储大量的、独立的、作为历史记录的数据。 |
CSV | 将以逗号分割的格式存储在文件中。 |
BLOCKHOLE | 不接受存储并且检索的数据是一个空集。 |
FEDERATED | 讲数据存储在远程数据库中。 |
二、事务安全表和非事务安全表的优势比较
A:事务优势
1.更安全,及时mysql崩溃或者遇到硬件问题,要么自动回复,要么根据备份和事务日志来恢复。
2.可以合并许多语句,并用commit语句同时全部接收他们(如果autocommit被禁止的话)。
3.可以使用rollback来忽略你的改变(如果autocommit被禁止的话)。
4.如果更新失败,你的所有更新都会恢复到初始状态(用非事务安全表,发生的该表都会永久的)。
5.更好的保证数据的完整性。
B:非事务优势
1.更快
2.接受更少的此磁盘空间
3.执行更新所需要更少的内存。
C:两者比较
1.为了更好的获取结果,我们不应该在一个事务中使用不同的表类型。
2.可以在同一个事务中使用事务安全表和非事务安全表来获取到两者最好的情况。
三:MyISAM和InnoDB
1:MyISAM
a.数据存储文件
1.frm文件存储表的定义
2.MYD文件存储数据
3.MYI文件为索引文件
2.InnoDB
a.数据存储文件
1.frm文件存储表的定义
2.ibd文件存储数据和索引