mysql的四种引擎

查询mysql所有引擎:SHOW ENGINES

查询mysql默认使用的引擎:SHOW VARIABLES LIKE ‘storage_engine’;

mysql常用引擎:InnoDB、MyISAM、Memory和Archive

一、InnoDB

支持事物,支持行锁,支持外键,并支持非锁定读,不支持全文索引。是5.5.8版本之后的默认引擎

特性

1-如果服务器意外宕机,重启数据库即可。

2-有独自的缓存池

3-在实行分表时,可以设置相关的外键来实现参照完整。执行更新或删除数据时,相关的数据也将会被自动的更新或删除

4-如果在磁盘或内存的数据损坏,InnoDB 校验机制在使用此数据之前会提醒数据异常

5-插入,更新,删除操作会被更新缓存执行,可以同时对同一张表读和写,InnoDB 会缓存更新的数据至磁盘

6-当表中同一行数据经常被查询,Adaptive Hash Index 帮助这些查询更快

存储

InnoDB 逻辑存储单元主要分为表空间,段,区,页
层级关系为:表空间 > 段 > 区 > 页

InnoDB 存储引擎表中所有数据都是存在表空间中,表空间包括:
系统表空间、独立表空间、通用表空间、临时表空间

二、MyISAM

在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。有较高的插入、查询速度。不支持事物,表锁设计,支持全文索引

特性

1-不支持事务

2- 可以在不同服务器上拷贝数据文件和索引文件

3-加锁和并发
加锁:对整张表进行加锁,而不是行
并发:在读数据的时候,所有的表上都可以获得共享锁(读锁),每个连接都不互相干扰

4- 修复表。MyISAM支持由于任意意外关闭而损坏的MyISAM表进行检查和修复操作(非事务修复)。

5-列索引。可以基于BLOB或TEXT类型列的前500个字符,创建相关索引

6-延迟更新索引。MyISAM 默认把DELAY_KEY_WRITE开启, 整个选项是MyISAM引擎独有的

7-压缩表。如果MyISAM表是一张很大的只读表,也就是在表创建完并导入数据后,就不会对表进行任何修改操作,那么我就可以对表进行压缩操作。这样可以减少磁盘IO

存储

每一个myisam的表都对应于硬盘上的三个文件:
.frm 文件用于保存表的定义(属于服务器,不属于引擎)
.myd 文件用于保存表的数据
.myi 文件是表的索引文件

三、MEMORY

将表中的数据存放在内存中,查询访问速度快。如果数据库重启,数据会消失。默认使用哈希索引

特性

1-表空间以小块来分配

2-能够使用非唯一键

3-支持hash索引和BTree索引

4-所有字段都是固定长度

5-不支持BLOB和TEXT等大字段

6-支持AUTO_INCREMENT自增列

四、ARCHIVE

只支持查询和插入操作,使用zlib算法进行压缩存储。适合存储归档数据,如日志等

特性

1-支持查询和插入,不支持修改和删除

2-支持BLOB和TEXT等大字段类型

3-支持AUTO_INCREMENT自增列

4-不支持索引

5-支持分区

存储:

每个archive表在磁盘上存在两个文件:
.frm 文件用来存储表定义
.arz 文件用来存储数据

五、存储引擎的选择

功 能MYISAMMemoryInnoDBArchive
存储限制256TBRAM64TBNone
支持事物NoNoYesNo
支持全文索引YesNoNoNo
支持数索引YesYesYesNo
支持哈希索引NoYesNoNo
支持数据缓存NoN/AYesNo
支持外键NoNoYesNo

使用引擎需要根据需求和性能灵活选择。使用合适的存储引擎,会提高整个数据库的性能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值