如何理解MYSQL的体系结构

1.MySQL服务器进程mysqld由哪三层组成,从各自所实现的功能角度分别加以说明。

                      连接层                          SQL层                        存储层

连接层:通讯协议,TCP/IP本地远程通讯、Socket本地通讯(Linux);为每一个活动的客户端创建一个连接线程;身份验证,使用OpenSSL创建SSL秘钥进行连接。

SQL层:解析器、授权、查询执行、优化器、查询日志记录。解析器,验证查询的语法语义并将其转化成标准形式;授权,验证用户是否有执行查询的权限;优化器,为每个查询创建最佳执行计划,以决定使用哪些索引以及以何种顺序处理表;查询执行,完成每个查询的执行计划;查询日志,记录服务器接收或执行的查询。

存储层:磁盘 InnoDB MylSAM、内存MEMORY、网络NDBCLUSTER。InnoDB是默认的内置存储引擎,充当不同表类型处理程序的服务器组件。


2.MySQL支持的通讯协议都有哪些?其连接方式和所支持的操作系统有何不同。

TCP/IP协议:可进行本地、远程的连接,适用于所有操作系统。

Socket file:可进行本地连接,适用于UNIX衍生的操作系统、MAC系统。

Shared memory和Named pipes:可进行本地连接,适用于Windows操作系统。


3.请说明SQL层的组件名称和各自的作用。

解析器,验证查询的语法语义并将其转化成标准形式;授权,验证用户是否有执行查询的权限;优化器,为每个查询创建最佳执行计划,以决定使用哪些索引以及以何种顺序处理表;查询执行,完成每个查询的执行计划;查询日志,记录服务器接收或执行的查询。


4.MySQL 8.0除了默认的存储引擎InnoDB之外,还有哪些常用的存储引擎?

MyISAM (常用在旧的系统中)、MEMORY、ARCHIVE、BLACKHOLE、MERGE、CSV、FEDERATED (默认被禁用)、NDBCLUSTER (在MySQL Cluster 发行版中可用)


5.MySQL数据库的哪些功能依赖于存储引擎的实现?

MySQL 将处理数据行的任务委托给这些存储引擎,这些引擎将数据存储在磁盘、内存中,或将其发送到网络上的其他组件,提供索引和其他行优化。创建表时,需要指定哪个可用存储引擎管理其数据。表的存储引擎通常不会影响SQL 层的操作,SQL 层解析所有有效的SQL,存储层处理行操作。SQL 语句是独立于存储引擎的,除了以下语句:

CREATE TABLE 有一个ENGINE 选项,指定每个表使用哪个存储引擎。

ALTER TABLE 有一个ENGINE 选项,可以将表转换为使用不同的存储引擎。

某些功能仅在某些存储引擎中可用:仅InnoDB 和NDB 支持:外键、事务控制操作,如COMMIT 和ROLLBACK。只有InnoDB 和MyISAM 支持全文索引。备份和恢复。优化。外键的引用完整性。全文本搜索。空间数据。


6.InnoDB存储引擎主要有哪些功能特点?

事务安全、多版本并发控制、布局表数据以优化基于主键的查询、支持外键引用完整性约束、损坏后的快速自动恢复、在内存中缓存数据和索引的缓冲池。

7.MyISAM存储引擎主要有哪些功能特点?

使用修复表恢复损坏的MylSAM表、快速简单但是服务器崩溃时会导致表损坏、支持FULLTEXT索引、支持表级锁、格式简单所有支持原始表级别的备份和恢复。


8.在MySQL数据目录下,都存放哪些数据库组件?

数据库文件、日志文件、配置/运行时文件。

9.MySQL的数据字典记录的元数据类型有哪些?

表的定义、存储过程定义、视图定义、方案对象定义、访问控制列表。

10.请说明MySQL 8.0和之前版本在管理元数据上的区别。

MySQL 8.0在管理元数据方面与之前的版本有显著区别,最主要的变化是引入了一个内置的事务性数据字典,而在早期版本如MySQL 5.7中,元数据是存储在多个文件和非事务性表中的,这一改进提高了数据的一致性和完整性。


11.MySQL 8.0使用JSON序列化元数据存储,有什么好处?

MySQL 8.0中的JSON数据类型具有多种特性,在处理JSON数据时更加高效和灵活。首先,JSON数据类型提供了自动验证功能,确保存储的JSON文档是有效的。,JSON文档以二进制格式存储,优化了存储空间并提高了读取速度。MySQL 8.0允许通过键或数组索引直接查找子对象或嵌套值,而无需读取整个文档。JSON数据类型还支持多种内置函数,如JSON_EXTRACT、JSON_ARRAY和JSON_OBJECT等,用于提取和操作JSON数据。

12.MySQL 8.0的表空间类型有哪几种,各自的用途是什么?

数据表空间:系统表空间:在系统表空间中存储元数据和缓冲区。

                      单表文件表空间:默认启用,包含来自单个表的数据和索引。

                      通用表空间:包含来自多个表的数据和索引,创建表空间时命名的.ibd 文件,不属于任何特定的数据库。

还原表空间: 默认情况下,还原日志驻留在两个还原表空间中。

临时表空间:由MySQL 在复杂查询中执行一些操作时使用,用户存储用户数据以供在会话中使用时。

13.对于系统表空间,它保存有哪些数据,默认的存放位置和文件名称是什么?

      系统表空间主要保存数据字典、回滚段、临时段和重做日志等数据。数据字典包括数据库的元数据,如表、索引、用户和权限等信息;回滚段用于事务回滚和恢复;临时段用于排序和其他临时操作;重做日志记录数据库的所有更改,以便在系统崩溃时进行恢复。MySQL中,默认的表空间文件路径由innodb_data_file_path参数定义,文件名通常为ibdata1。


14.请给出单表文件表空间和通用表空间的区别以及各自的适用场合。

单表文件表空间是为每个表创建一个独立的表空间文件,这样可以支持表压缩和空间回收,适用于需要高效管理单个表数据的场景。

通用表空间则是一个可以存储多个表的共享表空间,减少了大量数据删除时的文件系统开销,适用于需要灵活管理多个表和优化存储空间的场景。


15.对于通用表空间类型,每个表空间有且仅有一个数据文件,这个表述对不对?

这个表述不完全正确。通用表空间可以包含一个或多个数据文件,而不仅仅是一个数据文件。通用表空间提供了灵活性,可以根据需要添加多个数据文件,以便更好地管理存储和性能。


16.innodb_data_file_path 和 innodb_file_per_table 这两个参数各自的作用是什么?

innodb_data_file_path参数用于指定InnoDB共享表空间文件的路径和大小。如果没有在My.cnf文件中指定innodb_data_home_dir和innodb_data_file_path,默认会在datadir目录下创建一个名为ibdata1的共享表空间文件。而innodb_file_per_table参数则决定每个表的数据和索引是否存储在单独的.ibd文件中。启用该参数后,每个新创建的表都会有一个独立的表空间文件,这样可以更好地管理磁盘空间,并在删除或清空表时回收存储空间。


17.请说明重做(redo)和还原(undo)各自在MySQL数据库中的作用。

在MySQL数据库中,重做(redo)和还原(undo)日志各自发挥着重要作用。重做日志(redo log)记录了对数据库页的物理修改操作,主要用于在系统崩溃后,通过重放这些日志来恢复已提交事务的修改,确保数据的持久性。还原日志(undo log)则记录了事务对数据库所做更改的相反操作,用于在事务回滚时恢复到事务开始前的状态,并支持多版本并发控制(MVCC),以提供一致性读视图。


18.请比较MySQL全局和会话内存的不同点。

   MySQL中的全局内存和会话内存有几个关键的不同点。全局内存在MySQL服务器启动时初始化,并且这些默认值可以通过修改my.ini文件来更改。全局内存的修改会影响整个服务器的运行。而会话内存则是在每次建立一个新的连接时初始化,MySQL会将当前所有全局变量的值复制一份作为会话变量。会话内存的修改只会影响当前的会话(即当前的数据库连接),不会影响其他会话或整个服务器。


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

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

相关文章

CSP-J Day 5 模拟赛补题报告

姓名:王胤皓,校区:和谐校区,考试时间: 2024 2024 2024 年 10 10 10 月 5 5 5 日 9 : 00 : 00 9:00:00 9:00:00~ 12 : 30 : 00 12:30:00 12:30:00,学号: S 07738 S07738 S07738 请关注作者的…

9.30学习记录(补)

手撕线程池: 1.进程:进程就是运行中的程序 2.线程的最大数量取决于CPU的核数 3.创建线程 thread t1; 在使用多线程时,由于线程是由上至下走的,所以主程序要等待线程全部执行完才能结束否则就会发生报错。通过thread.join()来实现 但是如果在一个比…

CentOS 替换 yum源 经验分享

视频教程在bilibili:CentOS 替换 yum源 经验分享_哔哩哔哩_bilibili问题原因 解决方法 1. 进入镜像目录 [rootlocalhost ~]# cd /etc/yum.repos.d/ 2.备份文件 [rootlocalhost yum.repos.d]# rename repo bak * 3.寻找阿里镜像源复制 https://developer.aliyun.com/mirror/ …

Redis基础三(redis的高级配置)

Redis进阶配置 一、Redis持久化操作 ​ 持久化就是把内存的数据写到磁盘中去,防止服务宕机了内存数据丢失。(Redis 数据都放在内存中。如果机器挂掉,内存的数据就不存在。所以需要做持久化,将内存中的数据保存在磁盘&#xff0c…

聊聊Mysql的MVCC

1 什么是MVCC? MVCC,是Multiversion Concurrency Control的缩写,翻译过来是多版本并发控制,和数据库锁一样,他也是一种并发控制的解决方案。 我们知道,在数据库中,对数据的操作主要有2种&#…

分享9个论文写作中强化观点三要素的奇技淫巧

学境思源,一键生成论文初稿: AcademicIdeas - 学境思源AI论文写作 在学术写作中,强化观点的表达至关重要,它不仅能够提升论文的说服力,还能使论点更加明确和有力。为了帮助作者更有效地传达观点,本文将分享…

Leetcode 1631. 最小体力消耗路径

1.题目基本信息 1.1.题目描述 你准备参加一场远足活动。给你一个二维 rows x columns 的地图 heights ,其中 heights[row][col] 表示格子 (row, col) 的高度。一开始你在最左上角的格子 (0, 0) ,且你希望去最右下角的格子 (rows-1, columns-1) &#x…

【Godot4.3】复合路径类myPath

概述 之前编写过一个基于指令绘图的类交myPoint&#xff0c;但是只涉及折线段生成。这次我基于SVG的<path>标签路径指令的启发&#xff0c;实现了一个能够获得连续绘制的直线段、圆弧和贝塞尔复合路径的类型myPath。 可以使用绘图指令方法或字符串形式的绘图指令解析来…

MATLAB|基于多主体主从博弈的区域综合能源系统低碳经济优化调度

目录 主要内容 程序亮点&#xff1a; 模型研究 一、综合能源模型 二、主从博弈框架 部分代码 结果一览 下载链接 主要内容 程序参考文献《基于多主体主从博弈的区域综合能源系统低碳经济优化调度》&#xff0c;采用了区域综合能源系统多主体博弈协同优化方…

【重学 MySQL】五十二、MySQL8 新特性:计算列

【重学 MySQL】五十二、MySQL8 新特性&#xff1a;计算列 定义特性用法应用场景注意事项 在MySQL8中&#xff0c;计算列是一项引入的新特性&#xff0c;它为数据处理和分析提供了更大的灵活性和便捷性。 定义 计算列是指根据数据库中其他列的值通过计算得出的新列&#xff0c…

反调试—1

IsDebuggerPresent() CheckRemoteDebuggerPresent() 其内部实际调用NtQueryInformationProcess() bool _stdcall ThreadCall() {while (true){BOOL pbDebuggerPresent FALSE;CheckRemoteDebuggerPresent(GetCurrentProcess(), &pbDebuggerPresent);if (pbDebuggerPres…

Leetcode: 0011-0020题速览

Leetcode: 0011-0020题速览 本文材料来自于LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer&#xff08;第 2 版&#xff09;》、《程序员面试金典&#xff08;第 6 版&#xff09;》题解 遵从开源协议为知识共享 版权归属-相同方式…

【持续更新中】MMDetection3训练自己的数据集常见报错解决

博主近来跑自己数据集需要对比试验&#xff0c;故选择了MMDetection3这一算法整合详细的框架&#xff0c;遇到了较多问题在此处留作记录&#xff0c;若你也有相应的问题可以在评论区提出与解决方法。会持续更新&#xff0c;同时欢迎批评指正。 0.ModuleNotFoundError: No modu…

微信小程序hbuilderx+uniapp+Android 新农村综合风貌旅游展示平台

目录 项目介绍支持以下技术栈&#xff1a;具体实现截图HBuilderXuniappmysql数据库与主流编程语言java类核心代码部分展示登录的业务流程的顺序是&#xff1a;数据库设计性能分析操作可行性技术可行性系统安全性数据完整性软件测试详细视频演示源码获取方式 项目介绍 小程序端…

索尼MDR-M1:超宽频的音频盛宴,打造沉浸式音乐体验

在音乐的世界里&#xff0c;每一次技术的突破都意味着全新的听觉体验。 索尼&#xff0c;作为音频技术的先锋&#xff0c;再次以其最新力作——MDR-M1封闭式监听耳机&#xff0c;引领了音乐界的新潮流。 这款耳机以其超宽频播放和卓越的隔音性能&#xff0c;为音乐爱好者和专…

多模态—图文匹配

可能最近大家已经发现了chatgpt可以根据自己的描述生成图片&#xff0c;其实这就是一个图文匹配的问题&#xff0c;可以理解为这是一个多模态的问题。 在模型训练时我们需要N个图片和N个文本对进行训练&#xff0c;文本通过text encoder形成文本语义向量&#xff0c;text enco…

【Python】Streamlit:为数据科学与机器学习打造的简易应用框架

Streamlit 是一个开源的 Python 库&#xff0c;专为数据科学家和机器学习开发者设计&#xff0c;旨在快速构建数据应用。通过简单的 Python 脚本&#xff0c;开发者无需掌握前端技术&#xff0c;即可将数据分析和模型结果转化为直观、交互式的 Web 应用。其简洁的 API 设计使得…

NVIDIA NVLink-C2C

NVIDIA NVLink-C2C 文章目录 前言一、介绍1. 用于定制芯片集成的超快芯片互连技术2. 构建半定制芯片设计3. 使用 NVLink-C2C 技术的产品 二、NVLink-C2C 技术优势1. 高带宽2. 低延迟3. 低功率和高密度4. 行业标准协议 前言 将 NVLink 扩展至芯片级集成 一、介绍 1. 用于定制芯…

软件设计师——数据结构

本博文所有内容来自于B站up主zst_2001 目录 时间复杂度 常规数据结构 链表 栈与队列 ​编辑 串 数组 树 卡特兰数&#xff1a; 平衡二叉树 哈夫曼 图 AOV 排序 顺序 折半 哈希 时间复杂度 常规数据结构 链表 栈与队列 串 找i位置前面的字符串&#xff0c…

Koa2+mongodb项目实战1(项目搭建)

前言 在正式开始之前&#xff0c;需要先知道用到的东西&#xff1a; koa&#xff1a;Koa 是一个基于 Node.js 的 Web 应用框架&#xff0c;非常适合开发API服务&#xff0c;可以与前端框架&#xff08;如 Vue.js、React.js&#xff09;结合使用&#xff0c;实现前后端分离的开…