浅谈MySQL(二)存储引擎

上一节介绍了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)

 你们的支持是我前进的动力,感谢阅读!

发表评论