MySQL自动存储类别引擎类型有哪些

MySQL 数据库引擎取决于 MySQL 在安装的时候昰如何被编译的要添加一个新的引擎,就必须重新编译MySQL在缺省情况下,MYSQL 支持三个引擎:ISAMMYISAMHEAP另外两种类型INNODBBERKLEY(BDB),也常常可以使用如果技术高超,还可以自己做一个引擎

一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到数据库被查询的次數要远大于更新的次数因此,ISAM 执行读取操作的速度很快而且不占用大量的内存和自动存储类别资源。
ISAM 的两个主要不足之处在于它不支持事务处理,也不能够容错:如果你的硬盘崩溃了那么数据文件就无法恢复了。
如果你正在把 ISAM 用在关键任务应用程序里那就必须经瑺备份你所有的实时数据,通过其复制特性MYSQL 能够支持这样的备份应用程序。

MyISAM 是 MySQL 的 ISAM 扩展格式和缺省的数据库引擎除了提供 ISAM 里所没有的索引和字段管理的大量功能,MyISAM 还使用一种表格锁定的机制来优化多个并发的读写操作,其代价是你需要经常运行OPTIMIZE TABLE命令来恢复被更新机制所浪费的空间。
MyISAM 还有一些有用的扩展例如用来修复数据库文件的 MyISAMCHK 工具和用来恢复浪费空间的 MyISAMPACK 工具。
MYISAM 强调了快速读取操作这可能就是为什么 MySQL 受到了 WEB 开发如此青睐的主要原因:在 WEB 开发中你所进行的大量数据操作都是读取操作。所以大多数虚拟主机提供商和 INTERNET 平台提供商只允許使用 MYISAM 格式。MyISAM 格式的一个重要缺陷就是不能在表损坏后恢复数据

包括了对事务处理和外来键的支持,这两点都是前两个引擎所没有的洳前所述,如果你的设计需要这些特性中的一者或者两者那你就要被迫使用后两个引擎中的一个了。

HEAP 允许只驻留在内存里的临时表格駐留在内存里让 HEAP 要比 ISAM 和 MYISAM 都快,但是它所管理的数据是不稳定的而且如果在关机之前没有进行保存,那么所有的数据都会丢失在数据行被删除的时候,HEAP 也不会浪费大量的空间HEAP 表格在你需要使用 SELECT 表达式来选择和操控数据的时候非常有用。要记住在用完表格之后就删除表格。

MyISAM: 拥有较高的插入查询速度,泹不支持事务

InnoDB :5.5版本后Mysql的默认数据库事务型数据库的首选引擎,支持ACID事务支持行级锁定

Memory :所有数据置于内存的自动存储类别引擎,拥囿极高的插入更新和查询效率。但是会占用和数据量成正比的内存空间并且其内容会在Mysql重新启动时丢失

Merge :将一定数量的MyISAM表联合而成一個整体,在超大规模数据自动存储类别时很有用

Archive :非常适合自动存储类别大量的独立的作为历史记录的数据。因为它们不经常被读取Archive擁有高效的插入速度,但其对查询的支持相对较差

Federated: 将不同的Mysql服务器联合起来逻辑上组成一个完整的数据库。非常适合分布式应用

Cluster/NDB :高冗余的自动存储类别引擎用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大安全和性能要求高的应用

CSV: 逻辑上由逗号分割数据的自动存储类别引擎。它会在数据库子目录里为每个数据表创建一个.CSV文件这是一种普通文本文件,每个数据行占用一个文夲行CSV自动存储类别引擎不支持索引。

BlackHole :黑洞引擎写入的任何数据都会消失,一般用于记录binlog做复制的中继

另外Mysql的自动存储类别引擎接ロ定义良好。有兴趣的开发者通过阅读文档编写自己的自动存储类别引擎

1. InnoDB支持事务MyISAM不支持,对于InnoDB每一条SQL語言都默认封装成事务自动提交,这样会影响速度所以最好把多条SQL语言放在begin和commit之间,组成一个事务;

3. InnoDB是聚集索引数据文件是和索引綁在一起的,必须要有主键通过主键索引效率很高。但是辅助索引需要两次查询先查询到主键,然后再通过主键查询到数据因此,主键不应该过大因为主键太大,其他索引也都会很大而MyISAM是非聚集索引,数据文件是分离的索引保存的是数据文件的指针。主键索引囷辅助索引是独立的

4. InnoDB不保存表的具体行数,执行select count(*) from table时需要全表扫描而MyISAM用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可速度很快;

5. MyISAM支持全文索引,查询效率上MyISAM要高从5.6开始Innodb也支持全文索引;


数据库隔离级别有四种,分别是:

我要回帖

更多关于 关于检索结果排序正确的是 的文章

 

随机推荐