MySQL中的存储引擎讲解(InnoDB,MyISAM,Memory等各存储引擎对比)

本文详细介绍了MySQL中的存储引擎概念,重点比较了InnoDB和MyISAM存储引擎的特点,包括事务支持、索引、自增长列和外键等。同时提到了MyISAM存储引擎的动态与静态结构及其碎片管理策略。
摘要由CSDN通过智能技术生成

4、存储引擎之间的相互转化

一、存储引擎:

1、存储引擎其实就是如何实现存储数据,如何为存储的数据建立索引以及如何更新,查询数据等技术实现的方法。

2、MySQL中的数据用各种不同的技术存储在文件(或内存)中,这些技术中的每一种技术都使用不同的存储机制,索引技巧,锁定水平并且最终提供广泛的不同功能和能力。在MySQL中将这些不同的技术及配套的相关功能称为存储引擎。

二、MySQL 中查看引擎

1、show  engines;   // 查看mysql所支持的存储引擎,以及从中得到mysql默认的存储引擎。

2、show  variables  like ‘% storage_engine’;    //    查看mysql 默认的存储引擎

3、show  create   table  tablename ;   //    查看具体某一个表所使用的存储引擎,这个默认存储引擎被修改了!

4、show  table   status  from  database  where  name=“tablename”

//准确查看某个数据库中的某一表所使用的存储引擎

三、MySQL中常用的几种存储引擎:innoDB、bdb、myisam、memory以及这几个引擎的讲解;

innoDB存储引擎:

(1) innodb存储引擎该mysql表提供了事务,回滚以及系统崩溃修复能力和多版本迸发控制的事务的安全。

(2)innodb支持自增长列(auto_increment),自增长列的值不能为空,如果在使用的时候为空的话怎会进行自动存现有的值开始增值,如果有但是比现在的还大,则就保存这个值。

(3)innodb存储引擎支持外键(foreign key) ,外键所在的表称为子表而所依赖的表称为父表。

(4)innodb存储引擎最重要的是支持事务,以及事务相关联功能。

(5)innodb存储引擎支持mvcc的行级锁。

MyISAM存储引擎:

1、MyISAM   这种存储引擎不支持事务,不支持行级锁,只支持并发插入的表锁,主要用于高负载的select。

2、myisam类型的表支持三种不同的存储结构:静态型、动态型、压缩型。

(1)静态型:就是定义的表列的大小是固定(即不含有:xblob、xtext、varchar等长度可变的数据类型),这样mysql就会自动使用静态myisam格式。

使用静态格式的表的性能比较高,因为在维护和访问的时候以预定格式存储数据时需要的开销很低。但是这高性能是有空间换来的,因为在定义的时候是固定的,所以不管列中的值有多大,都会以最大值为准,占据了整个空间。

(2)动态型:如果列(即使只有一列)定义为动态的(xblob, xtext, varchar等数据类型),这时myisam就自动使用动态型,虽然动态型的表占用了比静态型表较少的空间,但带来了性能的降低,因为如果某个字段的内容发生改变则其位置很可能需要移动,这样就会导致碎片的产生。随着数据变化的怎多,碎片就会增加,数据访问性能就会相应的降低。

对于因为碎片的原因而降低数据访问性,有两种解决办法:

@1、尽可能使用静态数据类型

@2、经常使用optimize   table语句,他会整理表的碎片,恢复由于表的更新和删除导致的空间丢失。

(如果存储引擎不支持 optimize  table    则可以转储并重新加载数据,这样也可以减少碎片)

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

最后

毕竟工作也这么久了 ,除了途虎一轮,也七七八八面试了不少大厂,像阿里、饿了么、美团、滴滴这些面试过程就不一一写在这篇文章上了。我会整理一份详细的面试过程及大家想知道的一些问题细节

美团面试经验

美团面试
字节面试经验
字节面试
菜鸟面试经验
菜鸟面试
蚂蚁金服面试经验
蚂蚁金服
唯品会面试经验
唯品会

因篇幅有限,图文无法详细发出
Alkh-1711710633586)]
菜鸟面试经验
[外链图片转存中…(img-k8NeHoCE-1711710633586)]
蚂蚁金服面试经验
[外链图片转存中…(img-ry7lwxpD-1711710633587)]
唯品会面试经验
[外链图片转存中…(img-oZHmdDIP-1711710633587)]

因篇幅有限,图文无法详细发出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值