MySQL — 存储引擎

文章目录

  • 存储引擎
  • 存储引擎类型
    • InnoDB
    • MyISAM
    • MEMORY

存储引擎是数据库的核心,对于mysql来说,存储引擎是以插件的形式运行的。虽然mysql支持种类繁多的存储引擎,但是常用的就那么几种。这篇文章主要是对其进行简单的介绍。

存储引擎

MySQL可插拔存储引擎架构使数据库专业人员能够为特定的应用程序需求选择专门的存储引擎,同时完全不需要管理任何特定的应用程序编码需求。MySQL服务器架构将应用程序程序员和DBA与存储层的所有底层实现细节隔离开来,从而提供了一致且简单的应用程序模型和API。因此,尽管在不同的存储引擎之间存在不同的功能,但应用程序不会受到这些差异的影响。
在这里插入图片描述

可插拔存储引擎体系结构提供了一组标准的管理和支持服务,这些服务在所有底层存储引擎中都是通用的。存储引擎本身是数据库服务器的组件,它实际对维护在物理服务器级别的底层数据执行操作。

这种高效的模块化体系结构为那些希望专门针对特定应用程序需求(如数据仓库、事务处理或高可用性情况)的人提供了巨大的好处,同时享受利用一组独立于任何存储引擎的接口和服务的优势。

开发人员和DBA通过位于存储引擎之上的连接器api和服务层与MySQL数据库交互。如果应用有需要更改底层存储引擎的需求,或者需要添加一个或多个存储引擎以支持新需求,则不需要进行重大的编码或流程更改即可使其正常工作。MySQL服务器架构通过提供一个适用于存储引擎的一致且易于使用的API,使应用程序免受存储引擎底层复杂性的影响。

存储引擎类型

在数据库中我们可以通过 show engines来查看数据库当前支持的存储引擎。
在这里插入图片描述
简单的介绍其中几种存储引擎:

InnoDB

一款兼顾高可靠性和高性能的通用存储引擎。InnoDB目前是默认的MySQL存储引擎。除非你配置了不同的默认存储引擎,否则不带engine子句的CREATE TABLE语句会创建一个InnoDB表。
支持事务处理,支持外键,支持崩溃修复能力和并发控制。
如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。
如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。

MyISAM

基于之前的ISAM存储引擎(不再可用),但有许多有用的扩展。MySQL5.5版本(不含)之前的数据库所默认的数据表引擎。
插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。如果应用的完整性、并发性要求比较低,也可以使用。

MEMORY

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

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

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

相关文章

项目实战 — 消息队列(3){数据库操作}

目录 一、SQLite 🍅 1、添加依赖 🍅 2、修改配置文件后缀(properties -> yaml) 🍅 3、编写配置文件 二、建立数据表 三、添加插入和删除方法 四、整合数据库操作(DataBaseManger类) &a…

go Channel

channel 单纯地将函数并发执行是没有意义的。函数与函数之间需要交换数据才能体现出并发执行函数的意义。 虽然可以使用共享内存进行数据交换,但是共享内存在不同的goroutine中很容易发生竞态问题。为了保证数据交换的准确性,必须使用互斥量对内存进行…

STM32基础入门学习笔记:开发板 电路原理与驱动编程

文章目录: 一:触摸按键 1.触摸按键驱动程序(点击) touch_key.h touch_key.c main.c 2.按键双击和长按程序 touch_key.h touch_key.c main.c 3.触摸按键滑动程序 main.c 二:数码管显示 1.数码管RTC时钟LE…

MCUXpresso for VS Code -- 基于VSCode开发RT1176

MCUXpresso for VS Code 是nxp推出插件,旗下MCX LPC, Kinetis和i.MX rt等MCU,都能在VS Code平台进行嵌入式开发。功能框图如下: 前期准备: 软件环境: windows(实际可以跨系统,linux和mac没有测试) VS Code ninja CMa…

git之reflog分析

写在前面 本文一起看下reflog命令。 1:场景描述 在开发的过程中,因为修改错误,想要通过git reset命令恢复到之前的某个版本,但是选择提交ID错误,导致多恢复了一个版本,假定,该版本对应的内容…

【Linux】进程间通信——system V共享内存

目录 写在前面的话 System V共享内存原理 System V共享内存的建立 代码实现System V共享内存 创建共享内存shmget() ftok() 删除共享内存shmctl() 挂接共享内存shmat() 取消挂接共享内存shmdt() 整体通信流程的实现 写在前面的话 上一章我们讲了进程间通信的第一种方式…

【2023年电赛国一必备】A题报告模板--可直接使用

任务 图1 任务内容 要求 图2 基本要求内容 图3 发挥部分内容 说明 图4 说明内容 评分标准 图5 评分内容 正文 (部分) 摘要 本实验旨在设计和制作一个由两个单相逆变器组成的并联系统,用于为电阻负载供电或并入220V电网。采用基于STM…

[openCV]基于拟合中线的智能车巡线方案V2

import cv2 as cv import os import numpy as np# 遍历文件夹函数 def getFileList(dir, Filelist, extNone):"""获取文件夹及其子文件夹中文件列表输入 dir:文件夹根目录输入 ext: 扩展名返回: 文件路径列表"""newDir d…

ospf于mgre中应用(直连与星型拓扑)

题目 地址配置 R1: R2: R3: R4: R5: ISP: R1/2/3的星型拓扑结构 R1配置: interface Tunnel0/0/0 ip address 192.168.6.1 255.255.255.0 tunnel-protocol gre p2mp source 200.1.1.1 ospf …

Docker网络模型使用详解(2)Docker网络模式

安装Docker时会自动创建3个网络,可以使用docker network ls命令列出这些网络。 [rootlocalhost ~]# docker network ls NETWORK ID NAME DRIVER SCOPE ebcfad6f4255 bridge bridge local b881c67f8813 compose_lnmp_lnmp…

blender凹凸感和置换形变

一、怎么做出凹凸感 需要三个部分的内容: 1、一个基础的纹理:告诉计算机需要用一个什么样的纹理做凹凸,纹理一般采用黑白,在计算机里面,从 0 - 1之间的值可以用从黑到白之间不同的灰度来表示因此,有一张黑白…

linuxARM裸机学习笔记(3)----主频和时钟配置实验

引言:本文主要学习当前linux该如何去配置时钟频率,这也是重中之重。 系统时钟来源: 32.768KHz 晶振是 I.MX6U 的 RTC 时钟源, 24MHz 晶振是 I.MX6U 内核 和其它外设的时钟源 1. 7路PLL时钟源【都是从24MHZ的晶振PLL而来…

大数据教材推荐|Python数据挖掘入门、进阶与案例分析

主 编: 卢滔,张良均,戴浩,李曼,陈四德 出版社: 机械工业出版社 内容提要 本书从实践出发,结合11个“泰迪杯”官方推出的赛题,按照赛题的难易程度进行排序,由浅入深…

20天突破英语四级高频词汇——第①天

20天突破英语四级高频词汇~第一天加油(ง •_•)ง💪 🐳博主:命运之光 🌈专栏:英语四级高频词汇速记 🌌博主的其他文章:点击进入博主的主页 目录 20天突破英语四级…

无涯教程-Lua - for语句函数

for 循环是一种重复控制结构,可让您有效地编写需要执行特定次数的循环。 for loop - 语法 Lua编程语言中 for 循环的语法如下- for init,max/min value, increment dostatement(s) end 这是 for 循环中的控制流程- 首先执行 init 步骤,并且仅执行一…

LeetCode-654-最大二叉树

一:题目描述 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回…

开源免费用|Apache Doris 2.0 推出跨集群数据复制功能

随着企业业务的发展,系统架构趋于复杂、数据规模不断增大,数据分布存储在不同的地域、数据中心或云平台上的现象越发普遍,如何保证数据的可靠性和在线服务的连续性成为人们关注的重点。在此基础上,跨集群复制(Cross-Cl…

从零开始:手把手搭建 RocketMQ 单节点、集群节点实例

🔭 嗨,您好 👋 我是 vnjohn,在互联网企业担任 Java 开发,CSDN 优质创作者 📖 推荐专栏:Spring、MySQL、Nacos、Java,后续其他专栏会持续优化更新迭代 🌲文章所在专栏&…

javaAPI(二):String、StringBuffer、StringBuilder

String、StringBuffer、StringBuilder的异同? String:不可变字符序列;底层结构使用char[]存储; StringBuffer:可变字符序列;线程安全的,效率低;底层结构使用char[]存储; …

LangChain+ChatGLM大模型应用落地实践(一)

LLMs的落地框架(LangChain),给LLMs套上一层盔甲,快速构建自己的新一代人工智能产品。 一、简介二、LangChain源码三、租用云服务器实例四、部署实例 一、简介 LangChain是一个近期非常活跃的开源代码库,目前也还在快速…