百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

mysql的存储引擎(MySQL的存储引擎适用场景)

itomcoil 2025-04-08 15:13 17 浏览

1.数据文件(Data Files)

  • InnoDB 数据文件(.ibd 文件)当使用 InnoDB 存储引擎时,数据和索引通常存储在一个或多个 .ibd 文件中。这些文件包含了表的数据以及索引。每个表通常会有一个单独的 .ibd 文件,除非启用了共享表空间(innodb_file_per_table=0),则所有表的数据会存储在共享表空间文件中(通常是 ibdata1)。
  • MyISAM 数据文件(.MYD 和 .MYI 文件)对于 MyISAM 存储引擎,每个表通常有两个文件:一个数据文件(.MYD)和一个索引文件(.MYI)。.MYD 文件:存储表的数据。.MYI 文件:存储表的索引。

mysql的体系结构

(mysqlserver层对应的)

1、客户端链接层MySQL向外提供的交互接口: 相关的navicat,workbench,jdbc,python等

2. 连接池组件 管理和缓冲用户连接,为客户端请求做连接处理;身份认证等。

3.sql接口层: 主要作用:接受用户的SQL请求,查询,解析,分析,权限处理,优化,结果缓存等。

  • SQL接口组件(SQL Interface)

接收用户SQL命令,如DML,DDL和存储过程等,并将最终结果返回给用户。

  • 查询分析器组件(Parser)

系统在真正执行输入的语句之前,必须分析出语句想要干嘛?例如:首先通过select关键字得知这是一条查询命令,还包括分析要查询的是哪张表以及查询条件是什么?同时,分析器必须分析输入语句的语法正确性。如果SQL中存在语法的错误,则查询分析器组件将返回下面的信息

  • 优化器组件(Optimizer)

优化器是MySQL用来对输入的语句在真正执行之前所做的最后一步优化。优化内容包括:是否选择索引?选择哪个索引?多表查询的联合顺序等等。 每一种执行方法的逻辑结果是一样的,但是执行的效率会有不同,而优化器的作用就是决定选择使用哪一个方案。

  • 缓存主件(Query Caches & Buffers)

这个查询缓存比较好理解。在每一次的查询时,MySQL都先去看看是否命中缓存,命中则直接返回,提高了系统的响应速度。但是这个功能有一个相当大的弊病,那就是一旦这个表中数据发生更改,那么这张表对应的所有缓存都会失效。

4.管理服务组件和工具组件 MySQL的集成管理,如备份(Backup),恢复(Recovery),安全管理(Security)等。

5.存储引擎层: MySQL的存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyISAM、Memory 等多个存储引擎。

MySQL数据库物理文件错误日志

作用:存放数据库的启动、停止或运行时的错误信息;

场景:用于数据库启动排错。

二进制日志

作用:

二进制日志记录数据库的所有更改操作(DDL/DML/DCL),不包含select或者show这类语句

慢日志

作用:慢查询日志记录的是一些SQL语句,可用于查找需要很长时间才能执行的查询;

场景:用于找出长时间才能执行的查询语句,并对其进行优化。

但是,检查一个很长的慢查询日志可能成为一项艰巨的任务。为了简化这一过程,可以使用mysqldumpslow命令处理慢查询日志文件,以汇总日志中显示的查询。

中继日志

作用:记录从(slave)服务器接收来自主(master)服务器的二进制日志.

场景:用于主从复制

master主服务器将自己的二进制日志发送给slave从服务器,slave先保存在自己的中继日志中,然后再执行自己本地的relay log里的sql达到数据库更改和master保持一致。

undo log日志

undolog 是指用于记录撤销操作的日志,通常用于数据库系统或应用程序,以便在执行事务或操作时能够撤销先前的变更。它是一种保护机制,帮助恢复或撤销状态以避免数据丢失或错误操作。

在数据库中,undo log 记录了在执行某些操作时需要撤销的操作数据。常见的 undo log 包括以下内容:

  1. 撤销操作记录:如数据的更新、插入、删除等操作的原始数据。
  2. 事务管理:事务开始时,会记录操作数据以便在事务回滚时恢复原状。
  3. 恢复机制:如果操作失败或需要回滚,undo log 会按照日志中的信息执行撤销操作,恢复数据到原始状态。

在具体的实现上,比如 MySQL 使用 InnoDB 存储引擎时,undo log 主要用于支持事务的回滚和多版本并发控制(MVCC)。

相关推荐

Python Qt GUI设计:将UI文件转换Python文件三种妙招(基础篇—2)

在开始本文之前提醒各位朋友,Python记得安装PyQt5库文件,Python语言功能很强,但是Python自带的GUI开发库Tkinter功能很弱,难以开发出专业的GUI。好在Python语言的开放...

Connect 2.0来了,还有Nuke和Maya新集成

ftrackConnect2.0现在可以下载了--重新设计的桌面应用程序,使用户能够将ftrackStudio与创意应用程序集成,发布资产等。这个新版本的发布中还有两个Nuke和Maya新集成,...

Magicgui:不会GUI编程也能轻松构建Python GUI应用

什么是MagicguiMagicgui是一个Python库,它允许开发者仅凭简单的类型注解就能快速构建图形用户界面(GUI)应用程序。这个库基于Napari项目,利用了Python的强大类型系统,使得...

Python入坑系列:桌面GUI开发之Pyside6

阅读本章之后,你可以掌握这些内容:Pyside6的SignalsandSlots、Envents的作用,如何使用?PySide6的Window、DialogsandAlerts、Widgets...

Python入坑系列-一起认识Pyside6 designer可拖拽桌面GUI

通过本文章,你可以了解一下内容:如何安装和使用Pyside6designerdesigner有哪些的特性通过designer如何转成python代码以前以为Pyside6designer需要在下载...

pyside2的基础界面(pyside2显示图片)

今天我们来学习pyside2的基础界面没有安装过pyside2的小伙伴可以看主页代码效果...

Python GUI开发:打包PySide2应用(python 打包pyc)

之前的文章我们介绍了怎么使用PySide2来开发一个简单PythonGUI应用。这次我们来将上次完成的代码打包。我们使用pyinstaller。注意,pyinstaller默认会将所有安装的pack...

使用PySide2做窗体,到底是怎么个事?看这个能不能搞懂

PySide2是Qt框架的Python绑定,允许你使用Python创建功能强大的跨平台GUI应用程序。PySide2的基本使用方法:安装PySide2pipinstallPy...

pycharm中conda解释器无法配置(pycharm安装的解释器不能用)

之前用的好好的pycharm正常配置解释器突然不能用了?可以显示有这个环境然后确认后可以conda正在配置解释器,但是进度条结束后还是不成功!!试过了pycharm重启,pycharm重装,anaco...

Conda使用指南:从基础操作到Llama-Factory大模型微调环境搭建

Conda虚拟环境在Linux下的全面使用指南:从基础操作到Llama-Factory大模型微调环境搭建在当今的AI开发与数据分析领域,conda虚拟环境已成为Linux系统下管理项目依赖的标配工具。...

Python操作系统资源管理与监控(python调用资源管理器)

在现代计算环境中,对操作系统资源的有效管理和监控是确保应用程序性能和系统稳定性的关键。Python凭借其丰富的标准库和第三方扩展,提供了强大的工具来实现这一目标。本文将探讨Python在操作系统资源管...

本地部署开源版Manus+DeepSeek创建自己的AI智能体

1、下载安装Anaconda,设置conda环境变量,并使用conda创建python3.12虚拟环境。2、从OpenManus仓库下载代码,并安装需要的依赖。3、使用Ollama加载本地DeepSe...

一文教会你,搭建AI模型训练与微调环境,包学会的!

一、硬件要求显卡配置:需要Nvidia显卡,至少配备8G显存,且专用显存与共享显存之和需大于20G。二、环境搭建步骤1.设置文件存储路径非系统盘存储:建议将非安装版的环境文件均存放在非系统盘(如E盘...

使用scikit-learn为PyTorch 模型进行超参数网格搜索

scikit-learn是Python中最好的机器学习库,而PyTorch又为我们构建模型提供了方便的操作,能否将它们的优点整合起来呢?在本文中,我们将介绍如何使用scikit-learn中的网格搜...

如何Keras自动编码器给极端罕见事件分类

全文共7940字,预计学习时长30分钟或更长本文将以一家造纸厂的生产为例,介绍如何使用自动编码器构建罕见事件分类器。现实生活中罕见事件的数据集:背景1.什么是极端罕见事件?在罕见事件问题中,数据集是...