当前位置: 首页 > news >正文

MySQL的进阶篇1-MySQL的存储引擎简介

存储引擎

MySQL的体系结构

0、客户端连机器【java、Python、JDBC等】

1、【MySQL服务器-连接层】认证,授权,连接池

2、【MySQL服务器-服务层】 {SQL接口(DML、DDL、存储过程、触发器)、解析器、查询优化器、缓存}

3、【MySQL服务器-存储引擎层】{InnoDB、MyISAM、NDB、Archive。。。。可插拔式}

​ 控制的是MySQL当中数据存储和提取的方式,服务器会通过存储引擎和API进行通信和交互。

​ 【索引是在存储引擎层实现的,也就意味着不同的存储引擎,索引的结构是不一样的】

​ InnoDB是MySQL5.5版本之后默认的存储引擎。

4、【MySQL服务器-存储层】持久化到磁盘当中的文件和日志。

存储引擎简介

​ 引擎没有好坏之分,不同的场景使用不同的引擎。

​ 存储引擎是MySQL当中特有的,就是存储数据,建立索引,更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可以被称为表类型。

​ show create table user;

CREATE TABLE `user` (`user_id` int(11) NOT NULL,`username` varchar(60) DEFAULT NULL,`user_status` char(1) DEFAULT NULL,PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;show engines;

ENGINE=InnoDB DEFAULT CHARSET=utf8 指定存储引擎。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

存储引擎特点

1、InnoDB

​ 是一种兼顾高可靠性和高性能的通用存储引擎,在MySQL5.5之后,InnoDB是默认的MySQL存储引擎。

特点:

​ 1、DML操作遵循ACID模型,支持事务

​ 2、行级锁,提高并发访问性能。

​ 3、支持外键 Foreign key约束,保证数据完整性和准确性。

磁盘文件:

​ 每一个InnoDB表都会对应磁盘文件。

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

​ 参数:innodb_file_per_table

show variables like 'innodb_file_per_table';

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

ibd2sdi emp.ibd 就会返回数据文件的json记录。

逻辑存储结构:

1、tablespace:表空间

2、segment:段

3、Extent:区,大小固定,为1M,可以包含64个页。

4、Page:页,大小固定,为16K

5、Row:行【再里边就包含事务id、指针、和列记录了 】

2、MyISAM

​ 是MySQL早期默认的存储引擎。

特点:

不支持事务、不支持行级锁、不支持外键

支持表锁,访问速度快

磁盘文件:

tb_book.MYD :数据

tb_book.MYI:索引

tb_book_448(序号自增).sdi:表结构

3、Memory

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

特点:

​ 由于放到内存中,访问速度快。

​ 支持hash索引(默认)

文件:

xxx.sdi:存储表结构信息,因为它的数据都是存储到内存中,所以不持久化到磁盘。

4、存储引擎特点-总结:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

存储引擎选择

InnoDB:对数据一致性要求较高;

MyISAM:读操作和插入操作为主。【日志和评论】

Memory:做缓存。但是内存大小有限制。

相关文章:

MySQL的进阶篇1-MySQL的存储引擎简介

存储引擎 MySQL的体系结构 0、客户端连机器【java、Python、JDBC等】 1、【MySQL服务器-连接层】认证,授权,连接池 2、【MySQL服务器-服务层】 {SQL接口(DML、DDL、存储过程、触发器)、解析器、查询优化器、缓存} 3、【MySQL…...

九芯电子丨语音智能风扇,助您畅享智慧生活

回忆童年时期的传统机械风扇,那“古老”的扇叶连摆动看起来是那么吃力。在一个闷热的夏夜,风扇的噪音往往令人印象深刻。但在今天,静音家用风扇已取代了传统的机械风扇。与此同时,随着智能化的发展,智能家居已逐渐成为…...

2101. 引爆最多的炸弹;752. 打开转盘锁;1234. 替换子串得到平衡字符串

2101. 引爆最多的炸弹 核心思想:枚举BFS。枚举每个炸弹最多引爆多少个炸弹,对每个炸弹进行dfs,一个炸弹能否引爆另一个炸弹是两个炸弹的圆心距离在第一个炸弹的半径之内。 752. 打开转盘锁 核心思想:典型BFS,就像水源扩散一样&a…...

​校园学习《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著

​校园学习《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著...

UOS服务器操作系统搭建离线yum仓库

UOS服务器操作系统搭建离线yum仓库 1050e版本操作系统(适用ARM64和AMD64)1、挂载everything镜像并同步2、配置本地仓库3、配置nginx发布离线源 1050e版本操作系统(适用ARM64和AMD64) 首先需要有everything镜像文件 服务端操作流…...

C# 实现数独游戏

1.数独单元 public struct SudokuCell{public SudokuCell() : this(0, 0, 0){}public SudokuCell(int x, int y, int number){X x; Y y; Number number;}public int X { get; set; }public int Y { get; set; }public int Number { get; set; }} 2.数独创建 public class …...

vscode + conda+ ffmpeg + numpy 的安装方式

Windows 搭建 环境 遇到的错误点: 解决,使用conda init conda activate myenv usage: conda-script.py [-h] [–no-plugins] [-V] COMMAND … conda-script.py: error: argument COMMAND: invalid choice: ‘activate’ (choose from ‘clean’, ‘comp…...

Python Union联合类型注解

视频版教程 Python3零基础7天入门实战视频教程 我们看下如下的示例: my_list2: list[int] [1, 2, 3, 4] my_dict2: dict[str, float] {"python222": 3.14, "java1234": 4.35} l1 [1, "python222", True] # 如何注解多种元素类型…...

提高接口自动化测试效率:使用 JMESPath 实现断言和数据提取!

前言 做接口自动化,断言是比不可少的。如何快速巧妙的提取断言数据就成了关键,当然也可以提高用例的编写效率。笔者在工作中接触到了JMESPath,那到底该如何使用呢?带着疑惑一起往下看。 JMESPath是啥? JMESPath 是一…...

【Linux操作系统教程】用户管理与权限管理你真的懂了吗(三)

😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。😊 座右铭:不想…...

华为全联接大会2023 | 尚宇亮:携手启动O3社区发布

2023年9月20日,在华为全联接大会2023上,华为正式发布“联接全球服务工程师,聚合用户服务经验”的知识经验平台,以“Online 在线、Open 开放、Orchestration 协同”为理念,由华为、伙伴和客户携手,共同构建知…...

MySQL数据库查缺补漏——基础篇

MySQL数据库查缺补漏-基础篇 基础篇 net start mysql80[服务名] net stop mysql80 create database pshdhx default charset utf8mb4; 为什么不使用utf8?因为其字符占用三个字节,有四个字节的字符,所有需要设置为utf8mb4; 数值类型&…...

ESP8266 WiFi物联网智能插座—电能计量

目录 1、芯片功能 2、性能指标 3、寄存器说明 4、UART通信协议 4.1、写操作帧格式和时序 4.2、读操作帧格式和时序 4.3、读取全电参数数据包 4.4、配置波特率 4.5、UART保护机制 5、功能说明 5.1、电流电压瞬态波形计量 5.2、有功功率 5.3、有功功率防潜动 5.4、电能计量 5.5、…...

“智慧”北京,人工智能引领“新风尚”

原创 | 文 BFT机器人 北京时间,9月15日,北京人工智能产业峰会暨中关村科学城科创大赛颁奖典礼在北京中关村举行,同时惠阳还举行了“中关村人工智能大模型产业集聚区”启动建设的揭牌仪式。 此次大会围绕北京AI产业的建设与发展,各…...

狮子鱼社区团购小程序v18.1独立全开源版+小程序前端

狮子鱼社区团购商城系统小程序V18.1独立开源版,该系统本身就非常完善也没更新的必要,此系统拿来即用非常方便,同一版一样人类小徐特别优化很多细节首页美化了下,如小程序端授权窗口美化了下,该版本用户授权接口正常。功…...

深拷贝和浅拷贝的区别

本文内容 主要阐述下深拷贝和浅拷贝的区别 通俗理解 深拷贝和浅拷贝最根本的区别在于是否真正获取一个对象的复制实体,而不是引用。 假设B复制了A,修改A的时候,看B是否发生变化: 如果B跟着也变了,说明是浅拷贝&…...

利用优化算法提高爬虫任务调度效率

目录 一、任务调度优化的重要性 二、选择合适的优化算法 三、建立任务调度模型 四、设计适应性函数 五、算法实施和调优 六、性能评估和优化结果分析 代码示例 总结 随着网络信息的爆炸式增长,网络爬虫在信息获取和数据挖掘等领域的应用越来越广泛。然而&am…...

Swiper的使用流程

1.官网查看演示 Swiper演示 - Swiper中文网 2.找到想使用的 比如想使用 卡片切换(255) 记住这个名字 3.去下载示例 下载Swiper - Swiper中文网 4.找到对应文件 5.根据里面引入的东西加到自己的页面 一定要引入swiper的 js 和 css html结构要按示例对应的三层结构 需要 …...

如何快速实现一个可视化看板?

一、用python实现一个可视化数据看板,最多支持多大体量的数据处理? Python可以通过多种可视化库来实现数据看板,例如Matplotlib、Seaborn、Plotly等。这些库可以处理各种规模的数据,从小型数据集到大型数据集都可以应用。 对于小型…...

基于PyTorch搭建FasterRCNN实现目标检测

基于PyTorch搭建FasterRCNN实现目标检测 1. 图像分类 vs. 目标检测 图像分类是一个我们为输入图像分配类标签的问题。例如,给定猫的输入图像,图像分类算法的输出是标签“猫”。 在目标检测中,我们不仅对输入图像中存在的对象感兴趣。我们还…...

线性表应用(非递减合并、分解链表、删除线性表)

将两个非递减的有序链表合并为一个非递增的有序链表。要求结果链表仍使用原来两个链表的存储空间&#xff0c;不另外占用其它的存储空间。表中允许有重复的数据。 #include<iostream> using namespace std; typedef struct list {int data;list* next; }list,*linklist;…...

【C++面向对象侯捷下】1.导读

文章目录 来源&#xff1a;我的百度网盘 百科全书 专家书籍 C标准库 C编译器...

Ubuntu22.04 vnc远程黑屏

一、原因 原因是Ubuntu22.04使用的gnome启用了Wayland。vnc、teamviewer、向日葵、todesk等均无法使用或者远程黑屏等。 简单的说vnc、teamviewer、向日葵、todesk等均基于xorg实现&#xff08;xorg太流行&#xff09;&#xff0c;并不兼容Wayland&#xff0c;所以vnc无法正常…...

【1区TOP】Elsevier旗下CCF推荐,仅3个月左右录用!

01 期刊简介 CCF推荐人工智能类SCIE&EI 【期刊概况】IF&#xff1a;8.0-9.0&#xff0c;JCR1区&#xff0c;中科院2区TOP&#xff1b; 【版面类型】正刊&#xff1b; 【检索情况】SCIE&EI双检&#xff0c;CCF推荐&#xff1b; 【数据库收录年份】1992年&#xff…...

CentOS下安装Python3

一、电脑有网络&#xff1a; 1、直接使用yum包管理安装&#xff1a; yum是CentOS的默认包管理器&#xff0c;在安装软件时非常方便。要安装Python3&#xff0c;可以使用以下命令&#xff1a; sudo yum install python3等待安装完成后&#xff0c;查看python3是否安装完成 //不…...

微信小程序底部安全区域高度获取

CSS 属性 safe-area-inset-bottom safe-area-inset-bottom 就是安全区的高度 padding-bottom:env(safe-area-inset-bottom); wx.getSystemInfoSync() wx.getSystemInfoSync()可以获取系统信息 let system wx.getSystemInfoSync() let bottomSafe system.screenHeight -…...

虚拟机部署linux网络连接配置

1、虚拟机安装linux后&#xff0c;配置网络访问 虚拟机网络设置为NAT模式 linux网络配置好IP&#xff0c;主要是以下网络配置 2、linux没有ifconfig命令&#xff0c;ifconfig命令是在net-tools.x86_64包里 yum install net-tools.x86_64安装...

2591. 将钱分给最多的儿童(Java)

给你一个整数 money &#xff0c;表示你总共有的钱数&#xff08;单位为美元&#xff09;和另一个整数 children &#xff0c;表示你要将钱分配给多少个儿童。 你需要按照如下规则分配&#xff1a; 所有的钱都必须被分配。 每个儿童至少获得 1 美元。 没有人获得 4 美元。 请你…...

c++23中的新功能之十五类tuple类型的完全支持

一、std::tuple和std::pair 在传统的C里一直有一个问题让开发者不爽&#xff0c;就是无法返回多个值。一般来说&#xff0c;返回多个都建议采用封装的模式&#xff0c;比如弄一个结构体或者类啥的。这样做一定时没有问题的&#xff0c;但对于一些只返回一些简单值并且只在偶尔…...

iPhone15线下购买,苹果零售店前门店排长队

今年的苹果新品发布会于北京时间 9 月 13 日凌晨举行&#xff0c;并于 9 月 15 日&#xff08;周五&#xff09;开启订购&#xff0c;9 月 22 日&#xff08;周五&#xff09;起正式发售。 据多位网友反馈&#xff0c;首批苹果 iPhone15 系列手机、Apple Watch Ultra 2 / Seri…...

如何用运行打开wordpress/网络推广平台软件

我很惊讶于软件人员的开发速度&#xff0c;不少项目可以2周甚至3天就迅速地做出来。然而&#xff0c;后续却没有进一步持续地运营&#xff1a;扔到园子里&#xff0c;让它自生自灭&#xff0c;这不是互联网的模式。运营&#xff0c;是互联网的重要法宝&#xff1b;但需要盯着一…...

网页设计与网站建设第4章在线测试/app怎么推广运营

转载请注明出处:http://blog.csdn.net/snailbaby_soko/article/details/69524380 *本篇文章已授权微信公众号 guolin_blog &#xff08;郭霖&#xff09;独家发布 Android热更新方案Robust 相信很多人都认识了解过 热修复、热更新、热补丁(对于这个技术也没有特别标准的一种叫法…...

有全部公司的网站/百度热搜榜排名今日

一、引子 考虑求两数较大值函数max(a,b) 对于a&#xff0c;b的不同类型&#xff0c;都有相同的处理形式&#xff1a; return a < b ? b : a; 用已有方法解决&#xff1a; &#xff08;1&#xff09;宏替换 #define max(a,b) ((a)< (b) ? (b) : (a)) 存在的问题&#xf…...

个人作品集网站模板免费下载/荨麻疹怎么治疗能除根

https://blog.csdn.net/github_37512301/article/details/75675054 一、关联模型在关系型数据库中&#xff0c;表之间有一对一、一对多、多对多的关系。在 TP5 中&#xff0c;实现了ORM (Object Relational Mapping) 的思想&#xff0c;通过在模型中建立模型间的关联&#xff0…...

wordpress插件的用法/百度发视频步骤

父组件向子组件传值&#xff1a;父组件通过属性向下传值的方式和子组件通信&#xff1b;使用步骤&#xff1a;定义组件&#xff1a;现有自定义组件com-a、com-b&#xff0c;com-a是com-b的父组件&#xff1b;准备获取数据&#xff1a;com-b要获取父组件data中的name属性&#x…...

建设电子商务网站需要什么设备/seo的工作内容主要包括

2017年5月12日 09:57:48 星期五 最近接触了几天的composer, 不吹不黑, 简单说下用法吧 官方说要先用PHP命令行下载installer, 其实作用就是检测当前的PHP环境是否支持, 再一个就是自动下载composer.phar包 其实可以直接下载composer.phar放到某个地方 怎么跟你的PHP项目结合呢 …...