MySQL技术内幕-InnoDB存储引擎 笔记

Mysql 体系结构和存储引擎

数据库:物理操作系统文件或其他形式文件内容的集合;

数据库实例:有数据库后台进程/线程记忆一个共享内存区组成;

Mysql数据库在没有配置文件的情况下,会按照编译时的默认参数设置启动实例;mysql 按照/etc/my.cnf->/etc/mysql、my.cnf->/usr/local/mysql/etc/my.cnf->~/etc/my.cnf来读取配置项,以读取到的最后一个配置文件中的参数为准;

Mysql体系架构

Mysql区别于其他数据库的最重要特定就是其插件式的存储引擎。

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

Mysql表存储引擎:
innodb存储引擎
:支持事务,主要面向oltp(online transaction processing)、行锁、支持外键、非锁定读,通过多版本并发控制(MVCC)来获得高并发性、默认采用repeaable级别(可重复读),通过next-keylocking策略避免幻读、插入缓冲、二次写、自适应哈希索引、预读 。表中数据的存储采用聚集的方式,每张表的存储都按主机的顺序存储,如果没有显式地在表定义中指定主键,InnoDB存储引擎会为每一行生成一个6字节的Rowid,以此为主键。


myisam存储引擎: 不支持事务、表锁、全文索引、适合olap(在线分析处理),其中myd:放数据文件,myi:放索引文件

 

ndb存储引擎:集群存储引擎,share nothing,数据全放在内存(从5.1版本开始,非索引数据可放在磁盘),添加NDB数据存储结点可以线性提高数据库性能,高可用性,高性能

不足:JOIN操作是在mysql数据库层完成,而不是存储引擎层完成的;复杂的连接操作需要巨大的网络开销,查询速度很慢。
memory存储引擎: 数据存放在内存中,表锁,并发性能差,默认使用哈希索引

 

archive存储引擎:只支持insert和select zlib算法压缩1:10,适合存储归档数据如日志等、行锁
  maria存储引擎:目的取代myisam、缓存数据和索引、行锁、mvcc
各种存储引擎之间的比较:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值