MySQL三种存储引擎的区别

news/2024/4/29 15:09:59/文章来源:https://blog.csdn.net/qq_38677092/article/details/127109831

文章目录

  • 一、引言
  • 二、三个存储引擎的介绍
    • 1,InnoDB
      • 介绍
      • 特点
        • (1)事务处理、回滚、崩溃修复能力和多版本并发控制的事务安全
        • (2)支持主键自增
        • (3)支持外键
        • (4)支持事务和事务相关联的功能
        • (5)支持行级锁
      • 优缺点
    • 2,MyISAM
      • 介绍
      • 三种结构
        • (1)静态型
        • (2)动态型
        • (3)压缩型
    • 3,MEMORY
      • 介绍
      • 特点
        • (1)数据全部放在内存中
        • (2)存储表结构的frm文件
        • (3)索引类型
        • (4)不常用,数据容易消失
  • 三、区别
    • 图表
    • 文字
    • 简洁版
  • 四、参考

前往闪闪の小窝以获得更好的阅读评论体验

一、引言

存储引擎的概念是MySQL的特点,Oracle中没有专门的存储引擎的概念,Oracle有OLTP和OLAP模式的区分。不同的存储引擎决定了MySQL数据库中的表可以用不同的方式来存储。我们可以根据数据的特点来选择不同的存储引擎。

二、三个存储引擎的介绍

1,InnoDB

介绍

InnoDB给MySQL的表提供了事务处理、回滚、崩溃修复能力和多版本并发控制的事务安全。在MySQL从3.23.34a开始包含InnnoDB。它是MySQL上第一个提供外键约束的表引擎。而且InnoDB对事务处理的能力,也是其他存储引擎不能比拟的。靠后版本的MySQL的默认存储引擎就是InnoDB支持id自增,还支持外键。

特点

(1)事务处理、回滚、崩溃修复能力和多版本并发控制的事务安全

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

(2)支持主键自增

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

(3)支持外键

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

(4)支持事务和事务相关联的功能

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

(5)支持行级锁

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

优缺点

  • 优势在于提供了良好的事务处理、崩溃修复能力和并发控制。
  • 缺点是读写效率较差,占用的数据空间相对较大(连表查询)。

2,MyISAM

介绍

MyISAM存储引擎不支持事务,不支持行级锁,只支持并发插入的表锁,主要用于高负载的select。
myisam类型的表支持三种不同的存储结构:静态型、动态型、压缩型。

三种结构

(1)静态型

静态型是MyISAM的默认存储格式,只要表的字段是固定长度的(即不含有:xblob、xtext、varchar等长度可变的数据类型),这样mysql就会自动使用静态myisam格式。

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

(2)动态型

动态型包含变长字段,记录的长度不是固定的,其优点是它存数据时,采用的是数据的实际长度,能节省不少空间,但也是由于这点,当数据要做更新时,长度发生变更时,就不会存在原来的位置,而存在别的位置,造成原来的位置形成一空洞,并且关联的数据并不是存放在相邻的块中,而且产生大量的碎片,要定期进行碎片整理。

(3)压缩型

如果在这个数据库中创建的是在整个生命周期内只读的表,用myisampack工具进行压缩,空间占用相当小,只有原大小的一半,而且读取数据时,还会对数据进行加压缩,并且注意该类型的表是只读表,不能进行修改。

3,MEMORY

介绍

服务器需要有足够的内存来维持MEMORY存储引擎的表的使用。如果不需要了,可以释放内存,甚至删除不需要的表。

特点

(1)数据全部放在内存中

memory存储引擎相比前面的一些存储引擎,有点不一样,其使用存储在内从中的数据来创建表,而且所有的数据也都存储在内存中

(2)存储表结构的frm文件

每个基于memory存储引擎的表实际对应一个磁盘文件,该文件的文件名和表名是相同的,类型为.frm。该文件只存储表的结构,而其数据文件,都是存储在内存中,这样有利于对数据的快速处理,提高整个表的处理能力

(3)索引类型

memory存储引擎默认使用哈希(HASH)索引,其速度比使用B-+Tree型要快,如果读者希望使用B树型,则在创建的时候可以引用。

(4)不常用,数据容易消失

memory存储引擎文件数据都存储在内存中,如果mysqld进程发生异常,重启或关闭机器这些数据都会消失。所以memory存储引擎中的表的生命周期很短,一般只使用一次。

三、区别

图表

区别

文字

InnoDB

  • 优势在于提供了良好的事务处理、崩溃修复能力和并发控制。
  • 缺点是读写效率较差,占用的数据空间相对较大。

MyISAM

  • 优势在于占用空间小,处理速度快。
  • 缺点是不支持事务的完整性和并发性。

MEMORY

  • 数据的处理速度快,但是安全性不高。如果需要很快的读写速度,对数据的安全性要求较低,可以选择MEMOEY。它对表的大小有要求,不能建立太大的表。所以,这类数据库只使用在相对较小的数据库表

简洁版

InnoDB

  • 支持事务、外键、行锁

MyISAM

  • 支持表锁,访问快

Memory

  • 存在内存中

四、参考

mysql存储引擎的区别
Mysql三种存储引擎及区别

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_16013.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jar包运行报错jar中没有主清单属性、springGateway访问接口报错302,跳转login接口

此处记录三个错误: 一、jar中没有主清单属性,打包以后运行报错: 这是一个gateway模块,包含了启动类,因为在pom文件中没有指定,所以报错:在该模块的pom文件中加入如下代码:com.xxxx…

Spring中IOC容器的基本配置使用

实例化bean对象 为外部定义的bean起别名 基于set方法的依赖注入 使用构造函数进行依赖注入 使用内部注入的方式注入bean对象 使用list集合依赖注入和使用map集合依赖注入 测试类 使用depends-on控制bean的加载顺序 使用懒加载lazy-init 默认为false 使用单例或者多例(原型)…

C#中对象与JSON字符串互相转换的三种方式

JSON(JavaScriptObject Notation, JS 对象标记) 是一种轻量级的数据交换格式。 关于内存对象和JSON字符串的相互转换,在实际项目中应比较广泛,经过一番搜索,找到如下三种方法来解决此问题 分别是使用Newtonsoft.Json.dll、DataContractJsonSerializer、JavaScriptSerializer…

【老板要你啥都会系列】| 前端晋升全栈--项目日志

目录 1.开篇 2.nodejs文件操作 3.stream 4.stream演示 5.写日志 6.拆分日志 7.分析日志介绍 8.readline 1.开篇 日志包含什么访问人数啊、峰值啊、bug 啊什么的,如果没有日志那么很容易失控。 访问日志可以参考我们 http-server,每次访问都会有这…

谐振波导光栅的严格分析

摘要 谐振波导光栅(RWG)由于其在波长、相位和偏振等方面的可调谐性,在研究和工业中有着广泛的应用。RWG的结构包含一个薄的高折射率波导薄膜,该薄膜与光栅接触。波导支持多种导模,并且根据厚度的不同,模式的数量也不同。在这个…

javaFx打包exe程序

文章目录将代码打成jar包准备工作下载exe4j定制jre检测jar包用到jre的哪些jmods生成jre准备exe图标使用exe4j将jar转换成exe程序将代码打成jar包 打jar之前,把那些用不到的依赖统统删除,以免包含一些无用的内容,比如用不上的一些依赖jar&…

特征工程之特征降维-特征选择-PCA/LDA

特征降维之特征选择 特征选择是建模中常用的降维手段,比较暴力,直接将不重要特征删除。 缺点:造成信息丢失,不利于模型精度。【与之形成对比的是PCA、LDA等降维方式。】 主要标准有两个: 特征是否发散。特征与目标的…

简单组件讲解

在编程阶段,会遇到有些页面的某一区域的布局或数据显示类似;那么我们就可以复用这一段代码;在使用原生JS编程时,我们习惯是将代码抽出来自成一个文件,需要时引入即可。而在vue中也存在这样一个模块,可以简便的将可复用的代码抽成一个模块,这个就是组件。在很多人看来,组…

产品-如何让用户“更愿意“付费

学院课程 文章目录学院课程前言如何提高用户体验,吸引用户付费关于程序员等级的划分基础免费试看优质博客内容转化为视频用户关于短视频内容的生成关于利用用户的碎片化时间怎么差异化竞品?短视频赛道理解学院现状分析总结前言 学院地址 今天下午公司组织了一场需求…

线性回归

线性回归 导入库 import numpy as np import pandas as pd import matplotlib.pyplot as plt人工数据集n = 100 true_theta = np.array([[1], [1]]) X = np.insert(np.random.normal(5, 1, size=(n, 1)), 0, 1, 1) y = X @ true_theta + np.random.normal(0, 0.04, size=(n, …

Azure | AZ-204 认证之旅-应用服务(二)

theme: orange 我正在参加「掘金启航计划」 Web应用是构建在PaaS层的服务,它是支持托管的,并且是可缩放的,极大提高了工程效率,并且减少了在运营的层面的消耗,这篇文章介绍如何创建应用程序服务。 创建Web应用程序服务…

pytorch深度学习训练模板(分类、回归)

前言 LeNet-AlexNet-ZFNet: LeNet-AlexNet-ZFNet一维复现pytorch VGG: VGG一维复现pytorch GoogLeNet: GoogLeNet一维复现pytorch ResNet: ResNet残差网络一维复现pytorch-含残差块复现思路分析 DenseNet: DenseNet一维复现pytorch 包含所有一维经典模型的代码可随意切换训练 …

云原生技术 --- k8s节点组件之kube-proxy的学习与理解

k8s 网络代理(kube-proxy)在每个节点上运行。网络代理反映了每个节点上 Kubernetes API 中定义的服务,并且可以执行简单的 TCP、UDP 和 SCTP 流转发,或者在一组后端进行 循环 TCP、UDP 和 SCTP 转发。但是,必须要有一个插件,才可以…

毕业设计- 基于单片机与GPS+GSM的车辆定位跟踪系统

文章目录0 前言1 简介2 主要器件3 实现效果4 硬件设计Maduino Zero A9G GPRS/GPSk开发板这款低功耗A9G使用SIM800/900和NEO-6M GPS模块的基于Arduino的GPS跟踪系统5 软件说明使用Arduino的基于GPSGSM的车辆跟踪系统GPSGSM的车辆跟踪系统的代码6 最后0 前言 🔥 这两…

IDEA中使用Git

目录 一、IDEA中使用Git 配置Git settings ——>Version Control——>Git 点击Test测试版本号 下载gitee插件 配置账户 第一种方式:账号密码 第二种方式:通过Token令牌 分享单个项目 组员需要拿到项目的SSH地址 二、总结 一、IDEA中使用G…

万物互联时代到来,猿代码领衔先计算机赋数据化转型

社会经济的高速发展推动着各行各业进行转型升级,而数字经济则是当前社会经济发展的强大驱动。根据相关报道显示,早在多年前我国数字经济规模总量便达到万亿元规模,占2016年全年GDP比重的30%。数字经济的飞速发张需要强劲算力的支撑…

wxpython设计GUI:grid控件实现显示表单数据功能,同时实现界面的上下翻页以及跳转功能

grid控件实现显示表单数据功能,同时实现界面的上下翻页以及跳转功能。 1. 效果展示 2. 代码实现 #!/usr/bin/env python # -*- coding: utf-8 -*- # Author: Logintern09########################################################################### ## Python …

【图像分割】基于matlab直方图的自适应阈值方法分割前景与背景【含Matlab源码 2144期】

一、一种基于直方图的实时自适应阈值分割方法简介 1 引言 在交通管理中,为了获得车辆的运动数据,需要对交通视频进行实时监测,从监测图像序列中检测出运动对象,并对运动对象进行分析处理,从而获得车辆和行人的运动数据…

EMQX Cloud 影子服务:便捷数据缓存服务,加速 IoT 应用开发

全托管 MQTT 消息云服务 EMQX Cloud 可以帮助用户轻松将各类物联网设备连接上云,提供与各类第三方服务的数据集成,助力用户进行高效的数据处理、存储与分析。 为了实现更加便捷的物联网数据处理,进一步简化用户构建物联网应用的开发流程&…

好心情精神心理科:抑郁症,真的会让你变丑!

有患者向好心情平台咨询:“抑郁症多年,我总感觉自己变丑了,脸色也不咋好看,这到底是我的心理作用,还是容貌真有变化呢?” 变丑这件事,不致命,但对于很多人来说,却似乎难…