Mysql的InnoDB介绍

目录

show engines查看搜索殷勤,默认InnoDB。

Mysql为什么使用InnoDB作为默认存储引擎

InnoDB主要包括内存结构和磁盘结构

内存结构包含:

磁盘结构中包括:

为什么设计成内存结构和磁盘结构两部分

使用InnoDB存储引擎创建的表,对应的数据文件在哪里

MYSQL存储结构(MYSQL未来有效维护数据而定义的一系列数据结构)

什么是表空间文件

用户数据在表空间文件中怎么存储的


InnoDB兼顾高可靠性和高性能的通用引擎,8.0中默认存储引擎就是InnoDB,

支持B+树索引,支持备份与恢复,支持聚簇索引,支持数据压缩,支持数据缓存,支持地理空间数据类型,经纬度,支持数据加密,支持地理空间索引。

锁粒度-行级锁,修改一行的时候,别的不能修改,多版本并发控制。支持事务。

优势:

DML支持ACID模型(事务)可以回滚,崩溃恢复。支持行级锁,提高了多用户的读取并发性和性能。

Innode存储引擎维护了自己的缓冲池(以SQL为KEY,对应的数据为Value),大幅度提高了效率

Innode优化了基于主键的查询,每个InnoDB都有一个称为聚簇索引的主键索引,实现最少的IO,完成主键的查找

为了保证一致性,支持Foreign key外键约束

如何利用InnoDB特性实现最佳的性能

为表中查询最多的列指定为主键

show engines查看搜索殷勤,默认InnoDB。

如果InnoDB不是默认的存储引擎,可以通过命令后指定选项--default -storage-engine=InnoDB或者在选项文件中[mysql]节点定义default=storage-engine=InnoDB并且重启服务器来设置InnoDB的存储引擎

在MYSQL8.0中表的结构信息保存在.ibd文件中,可以使用ibd2sdi工具提取表中定义的具体信息使用方法

把ibd文件转换成txt文件

ibd2sdi --dump-file=文件名字.txt t_innodb.ibd

生成的t_innodb.tst文件中有对应表的具体描述

cd /var/lib/mysql/

Mysql为什么使用InnoDB作为默认存储引擎

原先用的是MyIsAM

换句话InnoDB(>5.5)和MyIsAM(<5.5)的区别

Innodb实现了聚簇索引,数据缓存,外键索引,哈希索引(以自适应哈希索引的方式)。由于InnoDB存储引擎存储数据量大,性能高,可以有效的保证数据安全等优点。

InnoDB主要包括内存结构和磁盘结构

内存结构包含:

缓冲池:内存主要工作区域,优化查询的性能

变更缓冲区:优化修改操作的性能

日志缓冲区:

自适应哈希:进一步提升查询的性能

磁盘结构中包括:

系统表空间

独立表空间

通用表空间

临时表空间

撤销表空间 :以上保存的是真实的数据

重做日志     下面保证数据的安全

双鞋缓冲区

为什么设计成内存结构和磁盘结构两部分

从Innodb数据设计想,性能和安全重要:真是的数据要保存到磁盘(容量大,价格便宜,IO速度慢,严重影响数据库整体性能)里面,把常用的放到内存(容量小,价格贵,断电就丢失,速度快)里面,换句话说磁盘结构的文件是用来保存数据实现数据持久化的,内存结构是用来缓存数据提升效率的。

使用InnoDB存储引擎创建的表,对应的数据文件在哪里

数据目录- /var/lib/mysql

当创建一个数据库时候,会在数据目录生成一个与数据库同名的子目录->表对应的数据文件以表名ibd为文件后缀的文件,ibd2sdi工具提取表中定义的具体信息,

在MYSQL5.7以后版本默认每个表生成独立表空间,每个表都对应一个表数据文件,可以通过innodb_file_per_table[=ON|OFF]进行控制,如果关闭这个选项,则所有表的数据都砸系统表空间存储

MYSQL存储结构(MYSQL未来有效维护数据而定义的一系列数据结构)

什么是表空间文件

表空间文件是用来存储表中数据的文件,表空间文件的大小由存储的数据多少决定,不同的表空间文件存储数据的种类也有所不同,在MYSQL中表分为五类:系统表空间,独立表空间,通用表空间,临时表空间,撤销表空间

表空间和表空间文件的关系是什么

表空间可以理解为MYSQL为了管理数据而设计的一种数据结构,主要是描述的对结构的定义,表空间文件是对定义的具体实现,以文件的形式存于磁盘上

用户数据在表空间文件中怎么存储的

用户的数据以数据行的方式存储在对应的表空间文件中,那么表空间中很多个数据行就需要进行处理,以便后续进行高效的查询

表空间由段,区组,区,页,数据行组成,其中页是InnoDB磁盘管理

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

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

相关文章

Android14之向build.prop添加属性(二百一十九)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+AOSP…

uniapp原生插件开发实战——集成Android端的Twitter登陆

Android集成Twitter登陆的官方教程:https://github.com/twitter-archive/twitter-kit-android/wiki 项目创建 首先可以先看下uniapp原生插件开发教程 uniapp原生插件类型分为两种: Module模式:能力扩展,无嵌入窗体的UI控件,类似于功能插件。Component模式:在窗体中内嵌…

php 混合xml js,html 代码报错 ,结束标签关闭, short_open_tag 的作用,php关闭文件结束判断

结束标签关闭, short_open_tag 的作用&#xff0c;php关闭文件结束判断 有时候我们我们会将php&#xff0c;xml&#xff0c;js&#xff0c;html 混合编写 php文件只要开始标签而不要结尾标签? 混合代码看代码 直接运行 yntax error, unexpected version (T_STRING) in php…

STM32智能家居项目esp8266上云OneNet【附源码+详细教程】

目录 一、硬件选材 二、OneNet使用教程 三、代码修改教程 四、添加数据流方法 五、项目工程&#xff08;源码元件清单教程&#xff09; 小白也能做&#xff0c;项目工程在后文可下载。 一、硬件选材 二、OneNet使用教程 拿到代码后肯定是连不上网的&#xff0c;因为源码…

Android.基本用法学习笔记

设置文本的内容 先在strings.xml声明变量 方法1. 方法2. 设置文本的大小 1.单位dp&#xff0c;大家可以去学一下有关的单位换算 2. 设置文本颜色 1. 2. 4.设置文本背景颜色 1. 2. 设置视图的宽高 与上级视图一致&#xff0c;也就是上一级有多宽就有多少 1. 2. 3. 4. 设置视图…

生成式人工智能重置:从初期热潮到战略扩展

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

cs61C | lecture4

cs61C | lecture4 C 语言内存布局 ### Stack 在最顶部&#xff0c;向下增长。包含局部变量和 function frame information。 > Each stack frame is a contiguous block of memory holding the local variables of a single procedure. > A stack frame includes: > …

C语言详解(文件操作)2

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…

浅析嵌入式实时系统中信号量的概念

目录 概述 1. 认识信号量 1.1 定义信号量 1.2 信号量的类型 1.2.1 二值信号量 1.2.2 计数信号量 1.2.3 互斥信号量 1.2.3.1 认识互斥信号量 1.2.3.2 互斥信号量的其他特性 2 典型信号量的使用 2.1 等待和信号同步 2.2 多任务等待和信号同步 2.3 信用跟踪同步 2.…

C++ - Clion安装Qt msvc2017版本教程,基础环境配置clion+ Qt5.12.12 msvc2017 + VS2019

背景&#xff1a;平时代码开发使用clion&#xff0c;但使用项目要制定mscv2017版本Qt。先装过mingw版本Qt无法运行&#xff0c;但msvc版本依赖装有Visual Studio&#xff0c;本地装的又是2019版。就出现了这个大坑&#xff0c;需要配置好clion Qt msvc2017 VS2019。 文章目录 …

深度学习中embedding层的理解

Embedding层作用 在深度学习领域中&#xff0c;Embedding层扮演着至关重要的角色&#xff0c;尤其在处理文本数据或类别数据。Embedding层的功能有两个&#xff1a; 1. 将高维稀疏的输入数据&#xff08;如单词、类别标签等&#xff09;转换为低维稠密的向量表示&#xff0c;…

LNMP配置

文章目录 一、相关概念CGI的由来FastCGIPHP-FPM 二、编译安装编译安装nginxyum安装mysql编译安装php配置nginx支持php解析增加数据库安装论坛 一、相关概念 CGI的由来 最早的Web服务器只能简单地响应浏览器发来的HTTP请求&#xff0c;并将存储在服务器上的HTML文件返回给浏览器…

Python | Leetcode Python题解之第144题二叉树的前序遍历

题目&#xff1a; 题解&#xff1a; class Solution:def preorderTraversal(self, root: TreeNode) -> List[int]:res list()if not root:return resp1 rootwhile p1:p2 p1.leftif p2:while p2.right and p2.right ! p1:p2 p2.rightif not p2.right:res.append(p1.val)…

DeepSpeed MoE

MoE概念 模型参数增加很多&#xff1b;计算量没有增加&#xff08;gating小FNN&#xff0c;比以前的大FNN计算量要小&#xff09;&#xff1b;收敛速度变快&#xff1b; 效果&#xff1a;PR-MoE > 普通MoE > DenseTransformer MoE模型&#xff0c;可视为Sparse Model&…

手机投屏到电脑时,手机提示连接失败

前言 注意&#xff0c;本方法建立在你已经通过其他帖子等解决了前置条件的情况下&#xff0c;手机提示连接失败情况下&#xff0c;包括但不限于关闭防火墙、安装无线投屏工具、手机和电脑连接在同一个WiFi频段下、关闭杀毒软件等。 具体操作方法 1、请进入设置 > 系统和…

电脑存储设备,固态硬盘介绍,usb接口

简介 存储设备分为两大类主存和辅存&#xff0c;另外还有专门提供存储服务的网络存储 主存储器 随机存取存储器&#xff08;RAM, Random Access Memory&#xff09; 特点&#xff1a;高速、易失性存储器&#xff0c;断电后数据丢失。用途&#xff1a;临时存储正在使用的数据…

卷积神经网络 convolution neural network

1.数学卷积&#xff1a;滑动窗口 2.图像具有局部相关性和平移不变性&#xff0c;有许多冗余的特征点&#xff0c;如果用全连接的神经网络会很浪费时间。 3.卷积nn&#xff1a;减少参数&#xff0c;滑动提取特征&#xff0c;特征作为下层卷积的输入&#xff0c;然后放到全连接…

Androidstudio项目加载不出来,显示Connect timed out

Android studio加载不出来所需要的环境依赖,99%的问题都是网络原因 解决办法有两个: 1.科学上网 2.使用国内的镜像 方法一自行解决,下面重点介绍方法二 在项目目录下找到gradle->wrapper->gradle-wrapper.properties 将项目的distributionUrl改为https://mirrors.cl…

设计模式-装饰器模式(结构型)

装饰器模式 装饰器模式是一种结构模式&#xff0c;通过装饰器模式可以在不改变原有类结构的情况下向一个新对象添加新功能&#xff0c;是现有类的包装。 图解 角色 抽象组件&#xff1a;定义组件的抽象方法具体组件&#xff1a;实现组件的抽象方法抽象装饰器&#xff1a;实现…

Unity 笔试题分享

1. 请回答以下代码片段执行时是否会产生堆内存分配 a. void SetChar(string s){s.Replace(b, d);}b. void Update(Transform t){t.localPosition new Vector3(0, 0, 0);}c、 int Sum(List<int> l){int total 0;foreach (int i in l){total i;} return total;}d…