MyISAM介绍:
其优势是访问的速度快,对事务的完整性没有要求或者以SELECT、INSERT为主的应用基本上都可以使用这个引擎来创建表 。
1.不支持行锁(MyISAM只有表锁),读取时对需要读到的所有表加锁,写入时则对表加排他锁;
2.不支持事务
3.不支持外键
4.不支持崩溃后的安全恢复
5.在表有读取查询的同时,支持往表中插入新纪录
6.支持BLOB和TEXT的前500个字符索引,支持全文索引
7.支持延迟更新索引,极大地提升了写入性能
8.对于不会进行修改的表,支持 压缩表 ,极大地减少了磁盘空间的占用
使用:事物的完整性不做要求,容忍少量和极小部分的数据丢失
文件存储方式
每个MyISAM在磁盘上存储成3个文件,其文件名都和表名相同,但拓展名分别是 :
.frm (存储表接收);
.MYD(MYData , 存储数据);
.MYI(MYIndex , 存储索引);
Memory介绍:
存储引擎将表的数据存放在内存中。·
每个MEMORY表实际对应一个磁盘文件,
格式是.frm ,该文件中只存储表的结构,
而其数据文件,都是存储在内存中,这样有利于数据的快速处理,提高整个表的效率。
MEMORY 类型的表访问非常地快,
因为他的数据是存放在内存中的,并且默认使用HASH索引 , 但是服务一旦关闭,表中的数据就会丢失。
MERGE介绍:
MERGE存储引擎是一组MyISAM表的组合,
这些MyISAM表必须结构完全相同,
MERGE表本身并没有存储数据,
对MERGE类型的表可以进行查询、更新、删除操作,这些操作实际上是对内部的MyISAM表进行的。
对于MERGE类型表的插入操作,是通过INSERT_METHOD子句定义插入的表,
可以有3个不同的值,使用FIRST 或 LAST 值使得插入操作被相应地作用在第一或者最后一个表上,
不定义这个子句或者定义为NO,表示不能对这个MERGE表执行插入操作。
可以对MERGE表进行DROP操作,但是这个操作只是删除MERGE表的定义,对内部的表是没有任何影响的。
存储引擎的选择
在选择存储引擎时,应该根据应用系统的特点选择合适的存储引擎。对于复杂的应用系统,还可以根据实际情况选择多种存储引擎进行组合。以下是几种常用的存储引擎的使用环境。