MySQL的不断更新与变化,其实最重要的就是存储引擎的变化和升级,也衍生了很多不同的存储引擎。
我们在建立MySQl数据库(也可以成为schema)时基本也会忽略存储引擎的选择,因为一般情况下我们都
直接使用的默认存储引擎。
在MySQL 5.1及之前的版本-MyISAM是默认的存储引擎
在MySQL 5.5及以后的版本-InnoDB是默认的存储引擎
MyISAM和InnoDB应该属是MySQL最常用的两种存储引擎。从发展史来说InnoDB比MyISAM出现得更晚,
功能也就更强大,但它不能完全代替MyISAM正是它功能的强大影响了它的性能。有人在追求性能,依然选
择MyISAM,当然就放弃的InnoDB的特有功能。
1、InnoDB存储引擎
InnoDB是如今MySQL的默认事务型引擎,也是最重要、使用最广泛的存储引擎。它被设计用来处理大量
的短期事务。Oracle也投入了大量的资源来修改InnoDB,也得到很好的提高,相信后期的版本中InnoDB将近
一步的改善。“InnoDB事务模型和锁”也就是最大的特点,当然InnoDB的行为时很复杂的。
(事务处理:类似于在插入两张表是,第一张成功,第二张失败。就会实现“回滚”,删除第一张成功插入的数据)
2、MyISAM存储引擎
MyISAM作为最早的存储引擎之一,经过多年的发展,可以满足用户的实际需求。MyISAM引擎的简单设计,
数据以紧密格式存储,所以在大量的情况下性能很好。
3、MySQL内建的其他存储引擎
Archive引擎、Blackhole引擎、CSV引擎、Memory引擎、Merige引擎、NDB集群引擎,当然每个存储引擎都有
它的特有特点,不然也不会生存到现在。
4、第三方存储引擎
XtraDB存储引擎、TokuDB存储引擎、Aria存储引擎(Maria改名)、Groonga存储引擎、SphinxSE引擎。
上面也只是列举的一下常见的存储引擎,选择存储引擎首先需要了解引用的基本要求,不如InnoDB和MyISAM,
如果逻辑复杂当然InnoDB是一个最好的选择,如果是一个凸显性能当让MyISAM要好一些。
当让说实话在选择存储引擎与数据库版本时都会带有个人情感,比如我就选择的是Aria存储引擎来开发的一个
医药吧网站(www.yi18.net),其目的是代替MyISAM。这里就带有个人情感“支持MySQL分支与社区”,当让听说
Aria比MyISAM性能更好,其实也可以用 XtraDB来代替InnoDB。这些选择都是带有感情色彩。
该贴由hui.chen转至本版2014-11-5 16:11:52