简介
MySQL中的数据用各种不同的技术存储在文件(或者内存)中;
每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的功能和能力;
这些不同的实现数据存储的技术在MySQL的整体架构中逻辑化为“存储引擎层”;
存储引擎,通常又被称作“表类型”(即可以在创建表时指定存储引擎,但无法对某一数据库指定存储引擎)
查看
可通过查看表的状态信息获得表所使用的存储引擎类别:
修改默认存储引擎:
各存储引擎及其特性
InnoDB
MyISAM
ARCHIVE
CSV
1
2
<code>将数据存储为csv格式,不支持索引</code>
<code>仅适用于数据交换场景</code>
BLACKHOLE
<code>没有存储机制,任何发往此引擎的数据都会丢弃</code>
<code>由于其会记录二进制日志,故常用于多级复制架构中作中转服务器</code>
MEMORY
3
4
<code>数据保存在内存中,即是一个内存表</code>
<code>仅支持</code><code>hash</code><code>索引,使用表级锁</code>
<code>不支持blob和text数据类型</code>
<code>常用于保存中间数据,如周期性的聚合数据等;也用于实现临时表</code>
MRG_MYISAM
<code>是MyISAM的一个变种,能够将多个MyISAM表合并为一个虚表</code>
<code>属于传统的存储引擎,一般不常用</code>
NDB
<code>是MySQL Cluster中专用的存储引擎,不常用</code>
第三方的存储引擎
XtraDB
PBXT
TokuDB
列式存储引擎:
Infobright
其它列式存储引擎
开源社区存储引擎:
Aria
Groona
OQGraph
SphinxSE
Spider
选择存储引擎可参考要素
是否需要事务
备份的类型的支持(热备或冷备)
崩溃后的恢复
特有的特性(如对SSD的支持等)