InnoDB:
是什么?
一个健壮的事务型存储引擎,MySQL5.7开始成为默认存储引擎
应用场景
-
更新密集的表,InnoDB存储引擎特别适合处理多重并发的更新请求
-
事务,InnoDB存储引擎是支持事务的标准MySQL存储引擎
-
自动灾难恢复, 与其他存储引擎不同,InnoDB表能够自动从灾难中恢复
-
外键约束,MySQL支持外键的存储引擎只有InnoDB
-
支持自动增加列AUTO_INCREMENT属性
MyISAM:
特性
-
无法处理事务
-
MyISAM可以独立于操作系统 当建立一个MyISAM表时,会在磁盘上建立三个文件xxx.frm xxx.MYD xxx.MYI
(eg:
建立demo表:
1.demo.frm #存储表定义,
2.demo.MYD #存储数据
3.demo.MYI #存储索引
)
应用场景
-
选择密集性的表,MyISAM 存储引擎在筛选大量数据时表现比较好,是突出的优点
-
插入密集性的表,MyISAM的并发插入特性允许同时选择和插入数据。 MyISAM存储引擎很适合管理邮件或者Web服务器日志数据
Memory
是什么?
一个存储介质使用系统内存的存储引擎,
特性
-
虽然性能很高,但是当Mysqld守护进崩溃时,Memory数据都会丢失。
-
Memory数据表的数据使用长度不变的格式,意味着不能使用BLOB和TEXT这些长度可变的数据类型(VARCHAR 虽然是长度可变的类型,但是因为它在MySQL内部当做长度固定不变的CHAR类型,可以使用)
3.Memory使用系统内存,可以设置max_heap_table_size控制Memory表的最大大小
应用场景
-
目标数据比较小,频繁访问
-
数据是临时的,要求必须立即使用
-
数据丢失对服务产生实质影响不大
-
Memory同时支持散列索引和B树索引。B树索引优于是散列索引,可以使用部分查询和通配查询,也可以使用<,>和>=等操作符方便数据挖掘。散列索引进行“相等比较”非常快,但是对“范围比较”的速度比较慢,所以散列索引值适合使用在=和<> 的操作符中,不适合在<或>操作符中,也同样不适合用在order by 子句中
网友评论