MySQL-存储引擎的介绍

      MySQL支持数个存储引擎作为对不同表的类型的处理器。每种类型都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的存储引擎,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。

存储引擎往往用后端或者表类型来指代它们。存储引擎位于解析器和优化器之下,提供了存储和索引设施。MySQL带有多种内建的存储引擎,并且允许用户添加自建的存储引擎。每个存储引擎实现了简单的打开、关闭、读取、插入、更新和删除功能。

查看MySQL安装中有哪些可用的存储引擎:
mysql> SHOW STORAGE ENGINES;

查看数据表的表格所使用的引擎:
mysql> SHOW TABLE STATUS;

一、MyISAM:

MyISAM是默认存储引擎。是对IBM开发的ISAM(Indexed Sequential Access Method 索引顺序存取方法)模式的扩展。MyISAM表格由磁盘上3个不同的文件组成。.frm文件存储表定义。数据文件的扩展名为.MYD (MYData) 存放行数据。索引文件的扩展名是.MYI (MYIndex) 存放索引。

 

MyISAM引擎能非常快速地进行读定操作,但却无法同时快速地进行读和写操作。如果执行大量的SELECT,MyISAM是更好的选择。

MyISAM引擎使用表级锁定 ,具体有3种不同的锁定类型:

1. 大多数读操作会使用 READ LOCAL锁,它允许对同一张表的其他读操作,但禁止更新操作,除非更新操作是同步插入。
2. READ锁主要由MYSQL工具套件使用,和READ LOCAL锁类似,但连同步插入操作也被禁止。
3. WRITE 锁类型,在 insert, update 或 delete 时都需要使用这种锁,它会阻塞其他所有对这张表的读和定操作。
由于每张表都有一个单独的锁,任何的定操作都会阻塞读,反之亦然。
MyISAM 不支持事务。但支持 FULLTEXT 索引类型。

二、InnoDB

InnoDB 给 MySQL 提供了具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。
如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表。
InnoDB 引擎使用行级锁 ,提供与 Oracle 类型一致的不加锁读取。这些特性均提高了多用户并发操作的性能表现。

InnoDB不支持FULLTEXT类型的索引。

For more:
http://dev.mysql.com/doc/refman/5.1/zh/storage-engines.html#bdb-storage-engine

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值