MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型)。
show engines;
MySQL5.5及以后版本默认引擎,目前开发中基本上通用引擎,甚至在58这些大公司的建表规范中已经明确提出必须且唯一使用的引擎。
优点如下:
MySQL5.0/5.1的默认引擎
优点如下:
数据保存在内存中,拥有极高的插入、更新和查询效率。但是不稳定,重启以后数据都会丢失。
优点如下:
特点 | InnoDB | Myisam | Memory | Archive | BDB |
---|---|---|---|---|---|
存储限制 | 64TB | 没有 | 有 | 没有 | 没有 |
事务安全 | 支持 | ||||
锁机制 | 行锁 | 表锁 | 表锁 | 行锁 | 页锁 |
全文索引 | 5.6以后支持 | 支持 | |||
B树索引 | 支持 | 支持 | 支持 | 支持 | |
哈希索引 | 支持 | 支持 | |||
集群索引 | 支持 | ||||
数据缓存 | 支持 | 支持 | |||
索引缓存 | 支持 | 支持 | 支持 | ||
数据可压缩 | 支持 | 支持 | |||
空间使用 | 高 | 低 | N/A | 非常低 | 低 |
内存使用 | 高 | 低 | 中等 | 低 | 低 |
支持外键 | 支持 | ||||
批量插入速度 | 低 | 高 | 高 | 非常高 | 高 |