万万哇 发表于 2024-8-17 08:41:18

MYSQL存储引擎InnoDB, MyISAM简介

MYSQL存储引擎

在开始谈到mysql存储引擎之前,我们应该知道或者了解存储引擎是什么,存储引擎是为了办理什么样的题目的。
        在mysql中,存储引擎是处理不同表类型SQL操纵的MySQL组件,同时MySQL服务器采用可插拔的存储引擎架构,在服务器运行时不需要重启就可以加载和卸载。

那我们为何要使用存储引擎呢?
        在MySQL对数据举行处理的过程中,我们肯定需要数据举行不同的操纵,比如排序, 查找,等等,以是在操纵的过程中如何存储数据,也就是该采用什么样的数据布局,以及如何包管数据读写的安全和速度等等,因此我们在不同的数据处理的情况下,就会用到不同的存储引擎。


存储引擎的分类

mysql中不同版本支持的存储引擎肯定是不相同的,这里我们可以使用指令 show engines来查看当前服务器所支持的存储引擎。
show engines;        https://i-blog.csdnimg.cn/direct/2d3e688fcf044d12bd42f687a1bf0732.png
其中YES表示为支持,NO表示为不支持,Default当然就表示为默认了,可以看到InnoDB是Mysql默认使用也是用途最广的存储引擎,背面一篇文章会专门提到。 (MYSQL 5.5开始成为的)
当然如果InnoDB引擎不是默认的存储引擎,可以通过命令行指定选项
default-storage-engine=InnoDB; 或者在MySQL的配置文件中配置上述选项
当然也会存在在一些业务场景下,默认存储引擎不是InnoDB且不能修改的情况这里我们在建表语句背面加上engine=InnoDB就行了
create table name{
    ......
}engine=InnoDB;
本文大概讲述一下每个存储引擎的上风,背面关于InnoDB引擎的每个特点背面会写文章详细讲述

InnoDB存储引擎

InnoDB存储引擎是一款高可靠性和高性能的存储引擎,如果建表的时候没有指定存储引擎,也会默认使用InnoDB引擎。 他的一些上风


[*]他是遵循ACID模型的,也就是支持事务功能,事务呢又是可以回滚,提交,崩溃规复等来掩护用户数据的安全性
[*]如果发生了意外导致服务器挂掉了,无论当时数据库发生了什么,都不需要在重启数据库后执行任何的特别操纵,InnoDB引擎崩溃修复功能会自动完成崩溃之前提交的更改,并撤销崩溃前正在举行但未提交的更改,从而允许我们从停止的地方继承执行。背面都会有专题详细讲述
[*]支持行级锁,进步了多用户的读取并发性和性能。这里的行级指的是锁的力度,背面都会详细讲到的
[*]InnoDB引擎维护了一个本身的缓冲池,缓冲池是一个键值对布局的情势,以SQL语句作为Key,SQL语句的执行结果作为VALUE,对于经常执行的SQL语句,同时执行出来的结果都是相同的SQL语句,缓冲池会对这样的数据举行缓存,这样从硬盘操纵的数据直接酿成了从内存中操纵,大幅提升了服从,在专用数据库服务器上,通常80%以上的物理内存会分配给缓存池
[*]InnoDB引擎优化了关于主键的查询服从,每一个InnoDB表都有一个称为聚簇索引的主键索引实现通过最少的硬盘I/O来实现对主键的查找, 背面应该出单独讲一个索引的专题
[*]为了保持数据完整性,InnoDB引擎支持Foreign Key(外键约束),在举行CRUD的时候(增删改查)的时候确保了先关表之间的一致性。
[*]当从表中反复查询相同行时,自顺应哈希索引会自动接管这些查询,此时查询服从和哈希表相同,InnoDB引擎本身不支持哈希索引,但是里面筹划了一个自顺应哈希,背面应该也会讲到

MyISAM存储引擎


MySQL5.5之前的默认存储引擎
既然可以作为之前的默认引擎,说明肯定照旧有很多长处的,他的查询服从极高,底层也是b+树,同时他有自身数据压缩的功能,表的占用空间就非常的小。但是他锁的级别是一个表级锁,也就表明了 读/写的性能其实是不那么优秀的,通常运用于中小型web应用和数据仓库配置中的只读或者主要是读的场景
       下面是MyISAM中的一些上风


[*]MyISAM表的最大行数为(2^32)^2及(1.844E + 19)行
[*]MyISA引擎中每个表最多可以创建64个索引,每个索引最多可以包含16个列; 一样平常只会设置一点,因为设置索引后,更改数据会修改很多地方
[*]支持并发插入在建表时可以输入指令,将数据文件和索引文件放在不同设备的不同目次中,从而进步访问速度,创建MyISAM文件时会天生三个文件,一个是索引文件,一个是数据文件
[*]BLOB和TEXT数据类型的列也可以被索引
[*]在索引列中允许使用NULL值
[*]在MySQL启动时设置了myisam_recover_options体系变量,那么MyISAM表在打开时会举行自查,如果上一次表没有精确关闭将会修复
[*]表中varchar和char列的长度总和最多可答64kb
[*]unique约束的长度不受限制
MyISAM引擎存储格式


       在MyISAM引擎中支持三种不同的存储格式,其中FIXED 静态(固定)格式和DYNAMIC 动态格式,会根据使用的列类型来自动选择,第三种是压缩格式,只能使用myisampack 实用程序天生而且是只读格式,解压使用myisam工具举行解压
       当表中没有BLOB或TEXT数据类型的时候,在使用建表语句或者修改表语句的时候,可以联合ROW_FORMAT表选项将表格式设置为FIXED或者DYNAMIC
        我们可以使用myisam实用工具对已压缩的MyISAM举行解压操纵
这里的压缩格式了解一下就好了 可以去百度搜一搜或者读一读官方文档







免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: MYSQL存储引擎InnoDB, MyISAM简介