⑩【MySQL】存储引擎详解, InnoDB、MyISAM、Memory。

news2025/1/23 4:47:03

在这里插入图片描述

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
个人主页:.29.的博客
学习社区:进去逛一逛~

在这里插入图片描述

存储引擎

  • ⑩【MySQL存储引擎】
    • 1. MySQL体系结构
    • 2. 存储引擎(介绍、操作)
    • 3. InnoDB、MyISAM、Memory对比、选择
      • ①InnoDB存储引擎
      • ②MyISAM存储引擎
      • ③Memory存储引擎
      • 🚀对比与选择


⑩【MySQL存储引擎】

1. MySQL体系结构

MySQL体系结构

  • 连接层
    • 最上层是一些客户端和连接服务,主要完成一些类似于连接处理、授权认证、及相关的安全方案。服务器也会为每个安全接入的用户端验证它所具有的操作权限。
  • 服务层
    • 第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化、部分内置函数的执行。所有跨存储引擎的功能也在这一层实现,如:过程、函数等。
  • 引擎层
    • 存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API和存储引擎进行通信。不同的存储引擎具备不同的功能,因此我们可根据自己的需要,选取合适的存储引擎来使用。
  • 存储层
    • 主要是将数据存储在文件系统之上,并完成与存储引擎的交互。

在这里插入图片描述




2. 存储引擎(介绍、操作)

存储引擎 - 介绍、操作

== 存储引擎就是存储数据、建立索引、更新 / 查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可称为表类型。(MySQL5.5 之后默认的存储引擎 —— InnoDB) ==

  • 🚀查询当前数据库的存储引擎

    • SHOW ENGINES;
      
  • 在这里插入图片描述

  • 🚀在创建表时指定存储引擎:

    • #语法
      -- 建表语句末尾使用ENGINE关键字,指定存储引擎。
      CREATE TABLE 表名(
      	字段1 字段1类型 [COMMENT 字段1注释],
          字段2 字段2类型 [COMMENT 字段2注释],
          字段3 字段3类型 [COMMENT 字段3注释],
          ...
          字段n 字段n类型 [COMMENT 字段n注释]
      )ENGINE = INNODB [COMMENT 表注释];
      
      
      #演示:
      -- 创建表testE、字段有id、name
      -- 指定使用MEMORY存储引擎
      CREATE TABLE testE(
      id INT,
      NAME VARCHAR(15)
      )ENGINE = MEMORY;
      



3. InnoDB、MyISAM、Memory对比、选择


①InnoDB存储引擎

存储引擎 - InnoDB

  • InnoDB介绍:

    • InnoDB是一种兼顾高可靠性和高性能的通用存储引擎,在MySQL 5.5 之后,InnoDB作为MySQL的默认存储引擎

    • 🚀特点:

      • ⚪DML操作遵循ACID模型,支持事务
      • 行级锁,提高并发访问性能;
      • 支持外键 FOREIGN KEY 约束,保证数据完整性和正确性;
    • 🚀文件:

      • xxx.idb:xxx为表名,InnoDB引擎的每张表都会对应这样一个表空间文件,来存储表的表结构(frm文件、sdi文件)、数据和索引。

      • ⚪参数:innodb_file_per_table

        • -- 查看参数innodb_file_per_table开启状态
          SHOW VARIABLES LIKE 'innodb_file_per_table';
          -- ON就表示开启:每张表都会对应这样一个表空间文件
          

InnoDB逻辑存储结构

在这里插入图片描述




②MyISAM存储引擎

MyISAM存储引擎

  • MyISAM存储引擎是MySQL早期的默认存储引擎。
  • 特点:
    • ⚪不支持事务,不支持外键;
    • ⚪支持表锁,不支持行锁;
    • ⚪访问速度快;
  • 文件:
    • xxx.sdi文件:存储表结构信息
    • xxx.MYD文件:存储数据
    • xxx.MYI文件:存储索引

③Memory存储引擎

Memory存储引擎

  • Memory存储引擎的表数据存储在内存中,由于受硬件问题、或断电问题的影响,只能将这些表作为临时表或缓存使用。

  • 特点:

    • ⚪内存存放,存取速度快
    • ⚪支持hash索引(默认)
  • 文件:

    • xxx.sdi文件:存储表结构信息

🚀对比与选择

三者区别与选择

  • InnoDB:是MySQL的默认存储引擎,支持事务、外键。如果应用对事务的完整性要求比较高,在并发条件下要求数据的一致性,数据操作除插入和查询之外,还包含很多更新、删除操作,那么InnoDB存储引擎是比较合适的选择。
  • MyISAM:如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性、并发性要求不高,那么适合选择MyISAM存储引擎。
  • Memory:将所有数据保存在内存中,访问速度快,通常用于临时表及缓存。其缺陷是对表的大小有限制,太大的表无法缓存到内存中,且Memory存储引擎无法保证数据的安全性

在这里插入图片描述





在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大模型会毁了初级程序员 —— 对话图灵奖得主 Joseph Sifakis | 新程序员

【编者按】GPT 系列的面世影响了全世界、各个行业,对于开发者们的感受则最为深切。以 ChatGPT、Github Copilot 为首,各类 AI 编程助手层出不穷。编程范式正在发生前所未有的变化,从汇编到 Java 等高级语言,再到今天以自然语言为特…

main.js 中的 render函数

按照之前的单组件文件中的写法&#xff0c;我们的写法应该是这样的 import App from ./App.vuenew Vue({el: #app,templete: <App></App>,components: {App}, }) 1、定义el根节点。2、注册App组件。3、渲染 templete 模板 但是在脚手架工程中&#xff0c;他是这…

C++实现高频设计模式

面试能说出这几种常用的设计模式即可 1.策略模式 1.1 业务场景 大数据系统把文件推送过来&#xff0c;根据不同类型采取不同的解析方式。多数的小伙伴就会写出以下的代码&#xff1a; if(type"A"){//按照A格式解析 }else if(type"B"){//按照B格式解析 …

2023最受推荐的五款项目管理工具

1、进度猫 进度猫是国内一款轻量级项目管理工具&#xff0c;适用于实时协作的团队。 以甘特图为向导&#xff0c;基于任务清单todolist&#xff0c;支持多用户协作&#xff1b; 甘特图显示具体任务清单、时间和任务的进度&#xff1b; 对未完成任务、已完成任务进行分类管…

AIGC|实践探索Langflow集成AzureOpenAI

目录 一、背景 二、AzureOpenAI介绍 三、langflow集成支持AzureOpenAI langflow集成AzureOpenAI联通改造流程&#xff1a; 四、效果演示 一、背景 langflow是一个LangChain UI&#xff0c;它提供了一种交互界面来使用LangChain&#xff0c;通过简单的拖拽即可搭建自己的实…

【文件读取/包含】任意文件读取漏洞 afr_1

1.1漏洞描述 漏洞名称任意文件读取漏洞 afr_1漏洞类型文件读取漏洞等级⭐漏洞环境docker攻击方式 1.2漏洞等级 高危 1.3影响版本 暂无 1.4漏洞复现 1.4.1.基础环境 靶场docker工具BurpSuite 1.4.2.靶场搭建 1.创建docker-compose.yml文件 version: 3.2 services: web: …

图片转excel表格怎么弄?有何密笈?

一般的软件要将图片转excel表格&#xff0c;都需要待识别的图片要有明显清晰的表格线&#xff0c;但金鸣识别则不需要这些条件的限制&#xff0c;即便是无表格线或缺少横线或竖线的图片&#xff0c;也能很好地识别成excel&#xff0c;另外&#xff0c;别的软件一般会限制文件大…

足跟痛筋膜炎最佳的治疗

足跟疼痛最常见的原因是跟腱炎。跟腱是从小腿肌肉到足跟骨的伸展部分。其他原因包括设备不当&#xff0c;走路加重脚跟的冲击力&#xff0c;鞋里面没有足弓的支撑&#xff0c;因为肥胖或怀孕脚弓变平&#xff0c;这可能会增加足跟疼痛的风险。除了跟腱炎外&#xff0c;足底筋膜…

python对数据的处理合集——字典、列表...

1.两个列表的数据对比 ①list2包含了list1,求出list2多余的值 #codingutf-8list1[1,3,5] list2[1,3,5,7,9,11] list[] for i in list2:if i not in list1:list.append(i) print(list)②求出两个列共同的值 ③两个列表合并 #第一种&#xff1a; list1 [1, 2, 3] list2 [4, …

ElasticSearch集群内存占用高?如何降低内存占用看这篇文章就够啦!(冻结索引)

ElasticSearch集群内存占用高&#xff1f;如果降低内存占用看这篇文章就够啦 一、冻结索引的介绍 经常搜索的索引被保留在内存中&#xff0c;因为重建索引和帮助高效搜索需要花费时间。另一方面&#xff0c;可能存在我们很少访问的索引。这些索引不需要占用内存&#xff0c;可…

MAC地址_MAC地址格式_以太网的MAC帧_基础知识

MAC地址 全世界的每块网卡在出厂前都有一个唯一的代码,称为介质访问控制(MAC)地址 一.网络适配器(网卡) 要将计算机连接到以太网&#xff0c;需要使用相应的网络适配器(Adapter)&#xff0c;网络适配器一般简称为“网卡”。在计算机内部&#xff0c;网卡与CPU之间的通信&…

聚观早报 |英伟达发布H200;夸克发布自研大模型

【聚观365】11月15日消息 英伟达发布H200 夸克发布自研大模型 iQOO 12系列开启销售 红魔9 Pro配置细节 禾赛科技第三季度营收4.5亿元 英伟达发布H200 全球市值最高的芯片制造商英伟达公司&#xff0c;正在升级其H100人工智能处理器&#xff0c;为这款产品增加更多功能&am…

天马行空的超级炫酷旋转图片-前端

一、实现代码&#xff08;html部分&#xff09; <!DOCTYPE html> <html> <head lang"en"><meta charset"UTF-8"><title>3D旋转</title><style type"text/css">*{padding: 0;margin: 0;}body,html{he…

笔记本电脑没有声音?几招恢复声音流畅!

笔记本电脑已经成为我们日常生活和工作的重要工具&#xff0c;而其中的声音是其功能之一。然而&#xff0c;有时您可能会遇到笔记本电脑没有声音的问题&#xff0c;这可能是由多种原因引起的。在本文中&#xff0c;我们将深入探讨笔记本电脑没有声音的常见原因&#xff0c;并提…

通过阿里云宕机这件事,来看国内程序员的畸形职场文化

1、阿里云宕机始末 阿里在变更这块有三板斧&#xff0c;可监控、可灰度&#xff0c;可回滚。另外他们内部非常喜欢用这类简短的语句传递意图。 听起来非常简单&#xff0c;就目前大多数互联网公司基础设施都会支持这3项&#xff0c;只是支持的程度不太一样&#xff0c;普通的监…

Freeswitch中CHANNEL_UNHOLD取回事件

1. CHANNEL_UNHOLD取回事件 2023-11-15T09:18:45.3740800 INFO c.e.c.v.s.c.i.FsServerEventHandler - eventReceived:CHANNEL_UNHOLD 2023-11-15T09:18:45.3740800 INFO c.e.c.v.s.c.i.FsServerEventHandler - EventBody********:{variable_effective_caller_id_number1000,…

【博客系统】 一

该博客系统基于servlet和mysql数据库 , 并且通过xshell终端工具部署至云服务器. 实现的功能包括: 1.博客列表页 2.博客详情页 3.登陆页面 4.强制登陆检查 5.获取用户信息 6.退出登陆 7.发布博客 一.系统展示 登陆页面 博客列表页 博客详情页 博客编辑页 下面就开始编写代码了.…

【Proteus仿真】【STM32单片机】锂电池管理系统

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器&#xff0c;使用LCD1602显示模块、DS18B20温度传感器、PCF8691 ADC模块、按键、LED蜂鸣器模块等。 主要功能&#xff1a; 系统运行后&#xff0c;LCD1602显示温…

Java方法中不使用的对象应该手动赋值为NULL吗?

在java方法中&#xff0c;不使用的对象是否应该手动赋值为null&#xff1f;我们先来通过一个示例看一下。 垃圾回收示例一 public class GuoGuoTest {public static void main(String[] args) {byte[] placeholder new byte[64 * 1024 * 1024];System.gc();} } 上面代码向内…

第五章 路由技术及应用

目录 5.1 直连路由概述 5.1.1 直连路由工作原理 5.1.2 直连路由配置 5.2 直连路由仿真 5.3 静态路由技术 5.3.1 静态路由定义 5.3.2 静态路由工作原理 5.3.3 静态路由配置 5.3.4 默认路由 (1) 默认路由概述 (2) 配置默认路由 (3) 默认路由应用场合&#xff1a;上网…