Mysql存储引擎
上一篇 /
下一篇 2013-02-28 17:38:47
/ 个人分类:Mysql
- MyISAM存储引擎
- 提供了键压缩功能。它使用某种压缩算法来保存连续的,相似的字符串索引值
- 与其他存储引擎相比MyISAM为AUTO_INCREMENT数据列提供了更多的功能
- 每个MyISAM数据表都有一个标志,服务器或myisamchk程序在检查MyISAM数据表时会对这个标志进行设置
- 支持全文检索,但这需要通过FULLTEXT索引来实现
- MyISAM支持空间数据类型和SPATIAL索引
- MERGE存储引擎
- MERGE数据表提供了一种把多个MyISAM数据表合并为一个逻辑单元的手段,查询一个MERGE数据表相当于查询其所有的成员数据表,这个种好处之一是可以绕开文件系统对各个MyISAM数据表的最大长度限制
- 用来构成MERGE数据表的所有数据表必须有同样的结构。这意味着必须为各成员数据表里的数据列定义同样的名字、同样的类型和同样的顺序,索引也必须以同样的办法按同样的顺序定义
- 可以把经过压缩和未经过压缩的数据表混杂在一起而构成一个MERGE数据表
- MEMORY存储引擎
- 把数据表保存在内存里,这些数据表有着长度固定不变的数据行,这两个特点使得数据表的检索速度非常快
- 在默认的情况下,MEMORY数据表使用散列索引,利用这种索引进行“相等比较”的速度非常快,单进行“范围比较”的速度就慢多了
- 存储在MEMORY数据表里的数据行使用的是长度固定不变的格式,以此加快处理速度,这意味着你不能使用BLOB和TEXT这样长度不可变的数据类型,但是可以使用VARCHAR类型
- 如果确实需要使用MEMORY鼠标和“>”“<”或BETWEEN操作符进行某种比较以判断某个值是否落在某个范围内,可以使用BTREE索引来加快速度
- InnoDB存储引擎
- 支持提交和回滚操作,确保数据在事务处理过程中万无一失。还可以通过创建保存点(savepoint)的办法来实现部分回滚
- 在系统崩溃后可以自动恢复
- 外键和引用完整性支持,包括递归式删除和更新
- 数据行级别的锁定和多版本共存,这使得InnoDB数据表在需要同时进行检索和更新操作的复杂查询里表现出非常好的并发性能
- 在默认的情况下,InnoDB存储引擎会把数据表几种存储在一个共享的表空间里,而不是为不同的数据表创建不同的文件。InnoDB表空间可以由多个文件构成,还可以包括多个原始分区。实际上InnoDB表空间就像一个虚拟的文件系统,它存储和管理所有InnoDB数据表内容。这样一来,数据表的长度就可以超过文件系统对各个文件的最大长度限制。你也可以把InnoDB存储引擎配置成为为每个数据表分别创建一个表空间的样子。
- Falcon存储引擎
- 支持提交和回滚操作,确保数据在事务处理中万无一失。还可以通过创建保存点来实现部分回滚
- 在系统崩溃后可以自动恢复
- 灵活的锁定级别和多版本共存,使得Falcon数据表在需要同时进行检索和更新操作的复杂查询里表现出非常的并发性能
- 在春初时对数据进行压缩,在检索时对数据进行解压缩以节省空间
- 日常管理和维护方面的开销低
- FEDREATED存储引擎
- 用途是访问其他Mysql服务器管理下的数据表。
- 当你创建一个FEDREATED数据表时,需要指定一台运行着其他服务器程序的主机,并提供那个服务器的合法账户的用户名和口令。当你打算访问数据表时,本地服务器将使用这个账户连接那台远程服务器
- NDB存储引擎
- 是Mysql的集群存储引擎。在这个引擎工作时,Mysql服务器的作用是帮助其他进程访问NDB数据表
- 各集群结点上的进程通过彼此通信来管理内存中的数据表。
- 为了减少冗余,数据表在集群进程中被复制
- 内存春初提供了高性能,集群机制提供了高度可用性,即使个别结点发生故障,系统也不会崩溃
- ARCHIVE存储引擎
- 对数据进行归档,最适合用来大批量地保存那些“写了就不改了”的数据行,因为只支持INSERT和SELECT
- 为了节省空间,在存储时会对数据进行压缩
- DELETE或UPDATE根本不能用
- 每个数据表最多只能由一个带索引的AUTO_INCREMENT数据列
- BLACKHOLE存储引擎
- CSV存储引擎
- 会在数据库子目录里为每个数据表创建一个csv文件
- 不支持索引
- EXAMPLE存储引擎
- 用来演示如何编写存储引擎的最小化样板。它存在的价值是让开发人员通过查看其源代码去学习怎样才能正确地把存储引擎加载到服务器里
收藏
举报
TAG: