MySQL的存储引擎

手字笔录:来自姜承尧《MySQL技术内幕InnoDB存储引擎》

一:数据库与实例区别:

1.    数据库指的是frm,MYD,MYI,ibd结尾的文件,文件的集合。

2.    实例指的是:MySQL数据库由后台线程以及一个共享内存区组成,它是程序。数据库实例是真正用于操作数据库文件的

 

二;存储引擎:存储引擎是基于表的,而不是数据库的,

(1):Innodb存储引擎:将数据放在一个逻辑的表空间中,4.1之后,每一个InnoDB存储的表单独存放到一个独立的ibd文件中

特点:

l  使用MVCC来获得高并发

l  实现了SQL的四种隔离级别,默认REPEATBLE级别

l  使用next-keylocking的策略来避免幻读现象的产生,

l  提供插入缓冲,二次写,自适应哈希索引,预读等高性能和高可用功能

l  使用聚集的方式,索引每张表都是按照主键的顺序进行存放,如果没有显式地在表定义时指定主键,InnoDB会为每一行生成一个6字节的ROWID(以此为主键)

(2):MyISAM不支持事务,表锁设计,支持全文索引,它的缓冲池只缓存索引文件,而不缓冲数据文件(与大多数数据库都不同)。

特点;

l  表是由MYD(存放数据文件)和MYI(存放索引文件)组成,

l  可以进行压缩或者解压,但是压缩后的表是只读的。

l  MySQL数据库只缓存其索引文件,数据文件交由操作系统本身来完成。

(3):NDB集群存储引擎,数据全部放在内存中,将非索引数据放在磁盘上,所以主键查找的速度极快,NDB的连接操作(JOIN)是在MySQL数据库层完成的,而不是存储引擎层

(4),Memory存储引擎;表的数据放在内存中,数据库重启或崩溃,表中的数据都将消失,适用于存储临时数据的临时表,以及数据仓库中的纬度表,

默认使用哈希

l  只支持表锁,并发性能差,不支持TEXT和BLOB列类型。

l  数据库使用该引擎作为临时表来存放查询的中间结果集

l  如果容量较大时,又或者中间结果含有TEXT和BLOB列类型字段,则MySQL数据会把其转换成MyISAM存储引擎表二存放到磁盘里。

(5)Archive:只支持Insert和select操作,设计的目的主要是提供高速的插入与压缩功能

l  5.1开始支持索引,

l  不是安全的存储引擎

l  使用zlib算法将数据行进行压缩(压缩比一般是1:10)后存储,适用于;存储归档数据,比如:日志信息。

l  使用行锁实现高并发的插入操作,

(6)Federated:只是指向一台远程MySQL数据库服务器上的表。

(7)Maria:设计的目的就是取代原有的MyISAM,

特点

l  支持缓存数据和索引文件

l  应用了行锁设计

l  提供了MVCC功能,支持事务和非事务安全的选项,

l  以及BLOB字符类型的而处理性能





时间如此,雨很大,从家里来学校。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值