详解数据库存储引擎

Mysql中插件式存储引擎一直都是其非常有特色的亮点,其灵活的处理方式,高度可定制化及完全开放的实现一直被很多用户所肯定。
存储引擎说明白点就是数据的处理方式和数据的存储方式
主流的插件式存储引擎主要有以下几种:
MyISAM,InnoDB,NDB Cluster,Merge,Archive,Federated


MyISAM:是Mysql默认的存储引擎,也是目前Mysql使用非常广泛的存储引擎之一。拥有较高的插入,查询速度,但不支持事务。
MyISAM存储引擎的每一个表都被存放在三个以表名命名的物理文件。首先肯定会有任何存储引擎都不可缺少的存放表结构定义信息的.frm文件,另外还有.MYD(表数据).MYI(索引数据)。
MyISAM支持一下三种索引类型。B-Tree,R-Tree,Full-text,B-Tree索引是用的最多的,就是所有的索引节点都按照balance tree的数据结构来存储,所有的索引数据节点都在叶节点。
MyISAM存储引擎是表级锁定。




InnoDB:
5.5版本后Mysql的默认数据库,事务型数据库的首选引擎,支持ACID事务,支持行级锁定。
支持事务安全,数据多版本读取,锁定机制的改进,实现外键。
物理结构:数据文件(表数据和索引数据),日志文件




NDB Cluster:存储引擎主要用于Mysql Cluster分布式集群环境,就是在无共享存储设备的情况下实现的一种内存数据库Cluster环境,主要是通过NDB Cluster存储引擎来实现的。
高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用
   
Merge :将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用


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


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


数据库引擎区别(MyIsam 和 InnoDB)
1.  InnoDB 不支持 FULLTEXT 类型的索引。
2.  InnoDB 中不保存表的具体行数,也就是说,执行 select count(*) from table 时,InnoDB 要扫描一遍整个表来计算有多少行,但是 MyISAM 只要简单的读出保存好的行数即可。注意的是,当 count(*)语句包含where 条件时,两种表的操作是一样的。
3.  对于 AUTO_INCREMENT 类型的字段,InnoDB 中必须包含只有该字段的索引,但是在 MyISAM 表中,可以和其他字段一起建立联合索引。
4.  DELETE FROM table 时,InnoDB 不会重新建立表,而是一行一行的删除。
5.  LOAD TABLE FROM MASTER 操作对 InnoDB 是不起作用的,解决方法是首先把 InnoDB 表改成 MyISAM
表,导入数据后再改成 InnoDB 表,但是对于使用的额外的 InnoDB 特性(例如外键)的表不适用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值