上一节介绍了MySQL数据库独有的插件式体系结构,并了解存储引擎是MySQL区别与其他数据库的一个最重要的特征。
1、存储引擎的好处是,每个存储引擎都有各自的特点,能根据具体的应用建立不同的存储引擎表,所以,可以认为MySQL的数据库核心在于存储引擎。由于MySQL数据库是开源的,用户可以根据MySQL预定义的存储引擎接口编写自己的存储引擎,也可以对原性能不满意的存储引擎自己修改代码。大名鼎鼎的InnoDB最早就是第三方存储引擎,后被oracle收购。
2、简单逻辑和一句话介绍下MySQL所常用的存储引擎
a)InnoDB:现MySQL默认存储引擎,支持事物、行锁设计、支持外键。
b)MyISAM:曾经mysql默认存储引擎,支持全文索引,表锁设计。
c)NDB:集群存储引擎,索引数据存于内存,主键查找非常快。有缺陷,实用低
d)Memory:表中数据存于内存,非永久存储。支持表锁,并发性能差。
e)Archive:只能insert+select,适合日志存储。行锁,高并发插入操作
f)Federated:不存储数据,只指向远程mysql上的表
g)Maria:新引擎,目标是取代MyISAM,待继续开发。
h)其它:Merge、CSV、Sphinx等,都有各自使用的场合。
这里我们对每个存储引擎没有详细的介绍,因为网上可以随意的搜索到各种存储引擎的性能介绍和使用。
3、下图是官方给出的各存储引擎之间的比较图

可以通过命令来查看当前数据库支持的存储引擎类型,如下所示:可以显示所有支持的存储引擎类型及各自所支持的属性。
mysql> show engines\G;
*************************** 1. row ***************************
Engine: FEDERATED
Support: NO
Comment: Federated MySQL storage engine
Transactions: NULL
XA: NULL
Savepoints: NULL
*************************** 2. row ***************************
Engine: MRG_MYISAM
Support: YES
Comment: Collection of identical MyISAM tables
Transactions: NO
XA: NO
Savepoints: NO
*************************** 3. row ***************************
Engine: MyISAM
Support: YES
Comment: MyISAM storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 4. row ***************************
Engine: BLACKHOLE
Support: YES
Comment: /dev/null storage engine (anything you write to it disappears)
Transactions: NO
XA: NO
Savepoints: NO
*************************** 5. row ***************************
Engine: CSV
Support: YES
Comment: CSV storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 6. row ***************************
Engine: MEMORY
Support: YES
Comment: Hash based, stored in memory, useful for temporary tables
Transactions: NO
XA: NO
Savepoints: NO
*************************** 7. row ***************************
Engine: ARCHIVE
Support: YES
Comment: Archive storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 8. row ***************************
Engine: InnoDB
Support: DEFAULT
Comment: Supports transactions, row-level locking, and foreign keys
Transactions: YES
XA: YES
Savepoints: YES
*************************** 9. row ***************************
Engine: PERFORMANCE_SCHEMA
Support: YES
Comment: Performance Schema
Transactions: NO
XA: NO
Savepoints: NO
9 rows in set (0.00 sec)
你们的支持是我前进的动力,感谢阅读!