本文使用的mysql版本为5.7.20版本,不同版本对应的功能不同
存储引擎:Mysql中各种数据使用不同的技术存储在文件/内存中,每种技术都使用了不同的存储机制和索引技巧,最终实现了不同的功能和能力。通过不同的技术能够获得额外的速度和功能。
查看殷勤相关信息:
mysql> show engines;
引擎名称 | 简介 | mysql是否支持 | 支持事务 | 支持分布式事务 | 保存点 |
---|---|---|---|---|---|
InnoDB | 支持事务,行级锁定和外键 | 默认使用 | ? | ? | ? |
MGR_MYISAM | ISAM表的集合 | ? | ? | ? | ? |
MEMORY | 基于哈希表,存储于内存,用于临时表 | ? | ? | ? | ? |
BLACKHOLE | 黑洞引擎,写入都会消失 | ? | ? | ? | ? |
MYISAM | 索引顺序引用方法 | ? | ? | ? | ? |
CSV | csv存储模式 | ? | ? | ? | ? |
ARCHIVE | 归档存储引擎 | ? | ? | ? | ? |
PERFORMANCE_SCHEMA | 性能模式 | ? | ? | ? | ? |
使用存储引擎:
方法1:
create table_name(
column1 type ….
...
)engine=InnoDB
方法2:
alter table table_name egnine = InnoDB
存储引擎 | 优势 | 劣势 | 适用场景 |
---|---|---|---|
InnoDb | 处理大数据量时性能高,支持事务,回滚。 | 比ISAM读取速率慢 | 1. 按前要求较高,或要求事务。2. 更新查询频繁,表锁定机会较大。 |
MyISAM | 快速读取 | 不支持事务 | 适用于多count计算,插入不频繁,查询很频繁,不需要事务操作的场景 |
静态MyISAM | 每个表空间相同,便于存储更新,便于数据恢复 | ||
动态MyISAM | 若表中有varchar时占用空间较小 | ||
压缩MyISAM | 进一步减少占用空间 | 压缩后不能被修改 | |
ISAM | 快速读取,不占用大量内存和存储资源 | 不支持事务、索引和外键。如把关键业务存于ISAM,定期备份 | |
HEAP(MEMORY) | 极高的 插入/更新/查询效率,默认使用哈希索引 | 保留数据不稳定,只驻留在内存中 | 临时表格 |
ARCHIVE | 有效提高插入速度 | 不支持索引,只支持insert和select | 存储大量独立的、作为历史记录的数据,如日志和聚合分析。 |
原文:https://www.cnblogs.com/wgh0807/p/11341566.html