Mysql常用存储引擎详解

插件式mysql 存储引擎

mysql 存储引擎, 以插件的形式, 可以根据我们的业务需求设置不同的存储引擎, 并且每种存储引擎都有各自的特点, 能够适合不同的业务场景,对于我们开发人员, 只有充分的了解各种存储引擎后才能真正的发挥mysql的性能, 总体来说,mysql的存储引擎类似与不同的数据存储结构。

InnoDB存储引擎

Mysql 从5.5.8后默认InnoDB存储引擎为默认的存储引擎 ,也是使用率最大的, 被应用于各种系统开发中,那么InnoDB的特点有哪些呢?

  • 支持事务

其目的主要是面向在线事务处理(OLTP) 的应用,其特点是支持行锁设计,支持外键,并支持非锁定读, 及默认读取操作不会产生锁。

  • InnoDB数据存储方式

InnoDb存储引擎是将数据存储在一个逻辑的表空间里, 而这个逻辑的 表空间 就想一个黑盒子一样, 由InnoDB存储引擎自身进行管理

  • InnoDB性能优势

InnoDB通过使用多版本并发控制(MVCC) 来获取高并发性,并且实现了sql标准的4种隔离级别,默认REPEATABLE级别,同时使用next-keylocking的策略来避免幻读的现象产生,而且InnoDB存储引擎还提供了插入缓冲(insert buffer),二次写(double write),自适应哈希索引(adaptive hash index),预读(read ahead)等高性能和高可用的功能

MYISAM存储引擎

Myisam 存储引擎是不支持事务, 不支持表锁设计, 支持全文索引,主要面向一些(OLAP)的数据库应用,此外, Myisam还有一个与众不同的地方是他的缓冲池只是缓存了索引文件,而不是缓存数据文件,这点和大多数数据库都不同。

  • Myisam 存储引擎数据存储

Myisam 存储引擎表由MYD和MYI组成,MYD用来存储数据文件,MYI用来存储索引文件。

  • Myisam数据大小

Myisam 存储引擎在 mysql 5.0之前支持的表大小为4GB, mysql5.0后默认支持256TB的单表数据,基本上满足一般应用需求。

NDB存储引擎

NDB存储引擎属一种集群存储引擎,类似于oracle 的RAC 集群, 但是不同于oracle的share everthing架构, NDB是一种share nothing的集群架构。

  • NDB存储引擎数据存储

DNB存储引擎是数据存储在内存里面的, 因此主键查找的速度非常快,可通过添加节点提升数据库的高可用, 高性能。

  • NDB存储引擎连接查询

NDB存储引擎连接查询(JOIN)实在mysql数据库层完成, 而不是在存储引擎层完成的,这意味着复杂的连接操作需要巨大的网络开销,因此查询速度会很慢。

Memory存储引擎

Memory 存储引擎(称之为Heap存储引擎)将表中的数据存在内存中了,如果数据库重启, 或者崩溃,表中的 数据都将消失,适用于临时数据的存储,Memory存储引擎使用哈希索引,而非B+树索引。 因为数据存在内存里面, 所以查询速度非常快,只支持表锁,并发差,不支持TEXT和BLOB类型。

Archive存储引擎

Archive 存储引擎只支持INSERT 和SELECT操作,Mysql5.1开始支持索引,Archive存储引擎最大的特点是将数据使用zlib算法将数据行(row)进行压缩, 压缩比一般可达1:10, 同时能够使用行锁来实现高并发的插入操作。

Mysql 存储引擎的设置查看

查看当前表使用的存储引擎

mysql> show create table emp;

在这里插入图片描述

mysql> show table status like 'emp' \G;

在这里插入图片描述

查看当前mysql版本支持的存储引擎

mysql> show engines \G;

设置mysql 需要的存储引擎

alter table emp engine=innodb;

主要在此记录一些学习体会, 如有出入,望指正…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值