MySQL进阶篇(一)存储引擎

一、MySQL 体系结构

这里是引用
(1) 连接层
最上层是一些客户端和链接服务,包含本地 sock 通信和大多数基于客户端/服务端工具实现的类似于TCP/IP的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可以实现基于SSL的安全链接。服务器也会为安全接入的每个客户端验证它所具有的操作权限。
(2)服务层
第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化,部分内置函数的执行。所有跨存储引擎的功能也在这一层实现,如 过程、函数等。在该层,服务器会解析查询并创建相应的内部解析树,并对其完成相应的优化如确定表的查询的顺序,是否利用索引等,最后生成相应的执行操作。如果是select语句,服务器还会查询内部的缓存,如果缓存空间足够大,这样在解决大量读操作的环境中能够很好的提升系统的性能。
(3)引擎层
存储引擎层, 存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API和存储引擎进行通信。不同的存储引擎具有不同的功能,这样我们可以根据自己的需要,来选取合适的存储引擎。数据库中的索引是在存储引擎层实现的。
(4)存储层
数据存储层, 主要是将数据(如: redolog、undolog、数据、索引、二进制日志、错误日志、查询日志、慢查询日志等)存储在文件系统之上,并完成与存储引擎的交互。

二、存储引擎介绍

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

(1)建表时指定存储引擎

CREATE TABLE 表名( 字段1 字段1类型 [ COMMENT 字段1注释 ] , ...... 字段n 字段n类型 [COMMENT 字段n注释 ] 
) ENGINE = INNODB [ COMMENT 表注释 ] ;

(2)查询当前数据库支持的存储引擎

show engines;

在这里插入图片描述

三、存储引擎特点

1. InnoDB

1.1 介绍

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

1.2 特点

(1)DML 操作遵循 ACID 模型,支持 事务 ;
(2) 行级锁 ,提高并发访问性能;
(3)支持 外键 FOREIGN KEY 约束,保证数据的完整性和正确性;

1.3 文件

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

show variables like 'innodb_file_per_table';

在这里插入图片描述

如果该参数开启,代表对于 InnoDB 引擎的表,每一张表都对应一个 ibd 文件。 我们直接打开 MySQL 的数据存放目录: C:\ProgramData\MySQL\MySQL Server 8.0\Data , 这个目录下有很多文件夹,不同的文件夹代表不同的数据库,我们直接打开itcast文件夹。

可以看到里面有很多的 ibd 文件,每一个 ibd 文件就对应一张表,比如:我们有一张表 account,就有这样的一个 account.ibd 文件,而在这个 ibd 文件中不仅存放表结构、数据,还会存放该表对应的索引信息。 而该文件是基于二进制存储的,不能直接基于记事本打开,我们可以使用 mysql 提供的一个指令 ibd2sdi ,通过该指令就可以从 ibd 文件中提取 sdi 信息,而 sdi 数据字典信息中就包含该表的表结构。在这里插入图片描述

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

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

相关文章

MySQL中的JSON数据类型计数及多张表COUNT的数据相加

1.使用场景:在MySQL中,JSON作为一种数据类型存储在表的列中。需计算键值对的数量。 2.方法:SELECT COUNT(chief>$.number) FROM t_projectapplication where id #{id};(t_projectapplication:表;chief&…

Android 编译过程介绍,Android.mk 和 Android.bp 分析, 在源码中编译 AndroidStudio 构建的 App

Android 编译过程介绍,Android.mk 和 Android.bp 分析, 在源码中编译 AndroidStudio 构建的 App_.mk编译目录所有.bp-CSDN博客

Python办公自动化 – 处理JSOM数据和操作SQL Server数据库

Python办公自动化 – 处理JSOM数据和操作SQL Server数据库 以下是往期的文章目录,需要可以查看哦。 Python办公自动化 – Excel和Word的操作运用 Python办公自动化 – Python发送电子邮件和Outlook的集成 Python办公自动化 – 对PDF文档和PPT文档的处理 Python办公…

如何通过内网穿透实现无公网IP远程访问内网的Linux宝塔面板

文章目录 一、使用官网一键安装命令安装宝塔二、简单配置宝塔,内网穿透三、使用固定公网地址访问宝塔 正文开始前给大家推荐个网站,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。…

这款IDEA插件真的爽,白嫖真香

Apipost-Helper是由Apipost推出的IDEA插件,写完接口可以进行快速调试,且支持搜索接口、根据method跳转接口,还支持生成标准的API文档,注意:这些操作都可以在代码编辑器内独立完成,非常好用!这里…

XD6500S一款串口SiP模块 射频LoRa芯片 内置sx1262

1.1产品介绍 XD6500S是一款集射频前端和LoRa射频于一体的LoRa SIP模块系列收发器SX1262 senies,支持LoRa⑧和FSK调制。LoRa技术是一种扩频协议优化低数据速率,超长距离和超低功耗用于LPWAN应用的通信。 XD6500S设计具有4.2 mA的有效接收电流消耗&#…

DevOps(10)

目录 56.Docker的架构? 57.Docker镜像相关操作有哪些? 58.Docker容器相关操作有哪些? ​编辑59.如何查看Docker容器的日志? 60.如何启动Docker容器?参数含义? 61.如何进入Docker后台模式?有…

Open3D将聚类结果显示或者保存

将聚类结果按大小排序,并取出最大的4个结果 import time import open3d as o3d; import numpy as np; import matplotlib.pyplot as plt#坐标 mesh_coord_frame o3d.geometry.TriangleMesh.create_coordinate_frame(size355, origin[0, 0, 0]) #mesh_coord_frame…

简述游戏行业中的攻击种类和适用的服务器

我们都知道游戏行业竞争大,特别是同行竞争、打击报复和网络敲诈等多种因素,游戏客户端也就成了主要受害者。而且据有效统计百分之80的DDOS攻击都来自游戏行业。因此游戏公司出品一款新的游戏,最担忧的问题不是推广不到位,也不是人…

2023APMCM亚太数学建模C题 - 中国新能源汽车的发展趋势(2)

五.问题二模型建立和求解 5.1 问题二模型建立和求解 针对题目二,题目要求收集中国新能源电动汽车行业发展数据,建立数学模型描述,并预测未来十年的发展。由于在第一文中,我们已经收集了一定的新能源行业发展数据&…

【漏洞复现】ActiveMQ反序列化漏洞(CVE-2015-5254)

Nx01 产品简介 Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件。ActiveMQ是消息队列服务,是面向消息中间件(MOM)的最终实现,它为企业消息传递提供高可用、出色性能、可扩展、稳定和安全保障。 Nx02 漏洞描述 Re…

云计算运维工程师面试题(二)

云计算运维工程师面试题(二) 1. 什么是云计算?云计算的主要特点是什么?2. 云计算的服务模型和部署模型?3. 什么是弹性伸缩?如何实现云计算的弹性伸缩?4. 云计算中的高可用性是如何实现的?5. 云计算中的数据安全如何保障?6. 云计算中的容灾和备份策略是如何设计的?7. …

数据分析求职-岗位介绍

这是咱们干货开始的第一篇文章,后续我尽量会保持日更的节奏和大家做分享~ 在未来所有分享的内容展开之前,咱们有必要先彻底、深入地了解下数据分析这个岗位。如果你还在犹豫是否要走数据分析的路,或者你已经拿了数据分析的offer想了解下将来…

插入排序详解!!!(简单排序),基本功排序C语言版

目录 1.什么是插入排序 2.插入排序的源代码 3.源代码详解 1.什么是插入排序 这是一个插入排序的流程图,插入排序 很像我们玩斗地主,玩牌,斗地主在开始前,我们是不是要给我们手上的牌排序啊,假设我们理牌有一个规矩就…

CLM陆面过程模式实践技术应用

NCAR陆面模式CLM (Community Land Model)是地球系统模式CESM (Community Earth System Model)中的陆面过程模式分量,是在结合了BATS、LSM和IAP94等众多陆面模式的优点后,加入水文过程而开发出的综合性陆面模式,是目前国际上发展最为完善且得到…

MySQL-DDL

DDL是数据定义语言,用来定义数据对象(数据库,表,字段) 数据库操作: 1.查询: 查询所有数据库:SHOW DATABASES; 查询当前数据库:SELECT DATABASE(); 2.创建: C…

UI测试平台RunnerGo一键安装教程

现在安装RunnerGo仅需要一条命令!目前支持系统:Centos、Debian、Ubuntu三种。下面给大家介绍一下RunnerGo安装使用流程: Step1:复制以下命令 wget https://img.cdn.apipost.cn/running_go/img/wiki/runnergo.tar && ta…

第二天学习记录

第二天 C++随便提一提,目前不深究,有兴趣了解重点学习编译原理选学C语言操作系统汇编语言编译器设计领域的技术C++ 随便提一提,目前不深究,有兴趣了解 C++历史,原理,过程式编程,面向对象编程,泛型编程,标准,技巧。为了应付复杂程度不断提高的现代化编程任务,C++引…

基于SSM的新闻网站

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

【Python库】pillow (PIL)库的用法介绍

一、引言 Pillow库是Python中用于图像处理的一个非常强大的工具,它实际上是Python Imaging Library(PIL)的一个分支。Pillow库提供了广泛的图像处理功能,包括但不限于: 图像的读取、写入和保存:Pillow库可…