欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mysql的四种引擎

程序员文章站 2022-03-10 15:25:50
mysql的四种引擎查询mysql所有引擎:SHOW ENGINES查询mysql默认使用的引擎:SHOW VARIABLES LIKE ‘storage_engine’;mysql常见引:InnoDB、MyISAM、Memory和Archive一、InnoDBinnoDB是mysql的默认引擎,支持事务、行锁定和外键。主要特性有:1、InnoDB给MySQL提供了具有提交、回滚和崩溃恢复能力的事物安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句中提供一个类似Orac...

查询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 文件用来存储数据

五、存储引擎的选择

功 能 MYISAM Memory InnoDB Archive
存储限制 256TB RAM 64TB None
支持事物 No No Yes No
支持全文索引 Yes No No No
支持数索引 Yes Yes Yes No
支持哈希索引 No Yes No No
支持数据缓存 No N/A Yes No
支持外键 No No Yes No

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

本文地址:https://blog.csdn.net/weixin_45739265/article/details/110489356

相关标签: mysql