【MySQL数据库管理问答题】第3章 理解 MySQL 体系

目录

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

MySQL 服务器进程 mysqld 通常可以分为三层:
连接层:负责管理客户端连接,处理连接和授权认证。主要包含连接池、线程管理、身份验证等。
服务层:实现 SQL 解析、优化、执行计划生成、存储过程等功能。服务层主要负责查询解析、优化和缓存。
存储引擎层:负责与存储引擎进行交互,通过抽象接口操作数据文件,处理具体的数据存取
和管理。这一层提供了数据的存储和索引功能。

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

(1)MySQL 支持的通讯协议
TCP/IP :用于远程连接,支持跨平台。
UNIX socket :仅用于本地连接,支持类 UNIX 操作系统。
Named Pipe (命名管道):仅在 Windows 系统下支持,用于本地连接。
Shared Memory(共享内存):仅在 Windows 系统下支持,用于本地连接。
(2)不同操作系统支持的连接方式有所不同
UNIX Socket 只在类 UNIX 系统中使用;
Named Pipe 和 Shared Memory 只在 Windows 中使用。

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

SQL 层主要组件
① 解析器:将 SQL 语句解析成内部数据结构,并进行语法和语义检查。
② 查询优化器:对 SQL 语句进行优化,生成执行计划。
③ 执行器:负责执行 SQL 语句,根据执行计划调用存储引擎获取数据。
④ 缓存模块:缓存查询结果,提高查询性能。
⑤ 存储过程和触发器管理器:管理存储过程和触发器的执行。

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

除了默认的 InnoDB 存储引擎外, MySQL 8.0 还常用的存储引擎包括:
MyISAM :不支持事务,适用于读密集型操作。
② Memory :将数据存储在内存中,适用于需要高速读写的临时表。
③ CSV :以 CSV 格式存储数据,适用于数据导出和导入。
④ Archive :适用于归档操作,支持高压缩率。
⑤ NDB :用于 MySQL Cluster ,支持高可用性和分布式存储。

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

MySQL 的以下功能依赖于存储引擎
① 事务支持:如 InnoDB 支持 ACID 特性的事务, MyISAM 不支持事务
② 外键约束: InnoDB 支持外键, MyISAM 不支持外键
③ 表锁与行锁: InnoDB 支持行级锁, MyISAM 只支持表级锁
④ 全文索引: MyISAM 原生支持全文索引, InnoDB 直到 MySQL 5.6 之后才支持全文索引

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

InnoDB 存储引擎的功能特点
支持事务( ACID );
支持外键约束;
支持行级锁;
使用 MVCC 机制提高并发性;
支持崩溃恢复和自动修复。

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

MyISAM 存储引擎的功能特点
不支持事务;
只支持表级锁;
查询性能较好,适用于读操作多的场景;
支持全文索引。 不支持外键。

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

MySQL 数据目录下存放的数据库组件
数据文件( .ibd .myd .myi 等);
表定义文件( .frm );
日志文件(如 redo 日志、 undo 日志);
系统表空间文件(如 ibdata1 );
配置文件( my.cnf my.ini )。

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

MySQL 数据字典记录的元数据类型
表、视图、触发器、存储过程和函数的定义;
用户及权限信息;
表空间和文件相关的元数据;
索引和分区信息。

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

MySQL 8.0 和之前版本在管理元数据上的区别:
MySQL 8.0 版本将元数据存储在 InnoDB 的数据字典中,而不再依赖文件系统中的 .frm .trg .par 文件等,大大简化了管理和备份。

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

MySQL 8.0 使用 JSON 序列化元数据存储的好处:
JSON 结构化存储提高了元数据的可读性和可扩展性,支持灵活查询,并简化了元数据的导入和导出。

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

MySQL 8.0 的表空间类型
系统表空间:存储 InnoDB 的数据字典和 Undo 日志。
文件表空间:用于单个表的存储。
通用表空间:支持多个表共享存储空间。

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

系统表空间保存的数据及默认存放位置和文件名称
① 数据: InnoDB 的数据字典、 Undo 日志。
② 默认存放位置和文件名称:数据目录下,文件名为 ibdata1

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

单表文件表空间和通用表空间的区别及适用场合
① 单表文件表空间:每个表独占一个文件,适用于单个表数据量较大的情况。
② 通用表空间:多个表共享一个表空间,适用于表结构相似且数据量相对较小的情况。

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

“ 通用表空间类型,每个表空间有且仅有一个数据文件 ” 这个表述错误;
通用表空间可以包含多个数据文件,以支持更大的存储需求。

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

innodb_data_file_path innodb_file_per_table 参数作用
① innodb_data_file_path :定义系统表空间的数据文件路径和大小。
② innodb_file_per_table :启用后,每个表使用独立的表空间文件( .ibd )。

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

Redo Undo MySQL 数据库中的作用
① Redo :用于崩溃恢复,保证事务的持久性。
② Undo :用于回滚未提交的事务,支持 MVCC 提供一致性读。

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

MySQL 全局内存和会话内存的不同点
① 全局内存:如 InnoDB 缓存池,影响整个服务器的性能。
② 会话内存:如排序缓冲区,只影响当前会话的操作。

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

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

相关文章

数据库之权限与安全

目录 一、MySQL权限表 1.MySQL权限系统的工作原理 2.权限表 二、账号管理 1.创建账号 2.删除账号 3.root用户修改自身密码 4.root用户修改普通用户密码 5.root用户密码丢失的解决方法 三、MySQL权限管理 1.查看账号权限 2.给账号授权 3.收回权限 一、MySQL权限表 …

[新手入门]1台电脑+1个电视+2个软件(sunshine+moonlight) 解决黑神话悟空没有hdmi线的痛...

sunshinemoonlight 解决黑神话悟空 本地串流投屏 背景:偶然间在B站发现了sunshinemoonlight方案,替代hdmi线,做本地串流...于是心灵手巧的我开始尝试踩坑之路:1.准备安装包2.开始安装2.1 笔记本windows安装sunshine2.2 遇到了第一个坑.Fatal: ViGEmBus is not installed or run…

【ansible】ansible roles

ansible roles 简介 Ansible Roles是一种组织和管理Ansible Playbooks的方法。它们允许将相关的配置和任务分组到一个可重用的单元中,使得代码更加模块化和可维护。 一个Ansible Role包含了一组预定义的变量、任务和文件结构。它可以被其他Playbooks调用和使用&am…

docke进阶---镜像迁移、容器的ip地址、端口映射和持久化

1.镜像的迁移 1.镜像打包 #查看镜像有一个centos的镜像 [rootdocker0 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 5d0da3dc9764 2 years ago 231MB 3查看帮助文件 docker --help save Save one or more…

【Unity】移动端草海解决方案

草海是开放大世界渲染的必不可少的因素,Unity 原生的 Terrain 草海效率较低,而且无法与 RVT 结合起来,无法在移动端上实现。因此我们自己搓出来一套草海系统,使用 C# 多线程辅助运算,并能支持割草、烧草等进阶玩法。草…

突破编程:深入理解C++中的组合模式

突破编程:深入理解C中的组合模式 在C及众多面向对象编程语言中,设计模式是解决问题的经典方案,它们帮助开发者在面对复杂系统设计时,能够遵循一套经过验证的最佳实践。组合模式(Composite Pattern)是这些设…

数据库内容保密检查系统:及时发现“潜在”安全威胁

日前,国内专注于保密与非密领域的分级保护、等级保护、业务连续性安全和大数据安全产品解决方案与相关技术研究开发的领军企业——国联易安自主研发的国联数据库内容保密检查系统V1.0通过国保局涉密检测,获得涉密信息系统产品检测证书。其主要具备以下主…

JS数据类型——【Map】精讲

JavaScript 中的 Map 是一种用于存储键值对的集合,它与传统的对象(Object)类似,但提供了更丰富的功能和灵活性。以下是 Map 相关的主要知识点: 1. 基础概念 键值对存储:Map 使用键值对的形式存储数据&…

输入名字转换成对象

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>输入名字转换成对象</title> </head>…

力扣算法总结

直接放别人简单易懂的总结&#xff0c;比我自己描述得好 代码随想录 (programmercarl.com) 崔添翼 (Tianyi Cui) 背包问题九讲 2.0 beta1.2 - jggnice! - 博客园 (cnblogs.com) 1.01背包 优化成一维就是利用之前上一维计算出来的数据&#xff0c;在不损害后面还要用的上一维…

在IAR开发环境下将尽可能多的代码重定向到RAM中执行的方法

今天给大家分享的是在IAR开发环境下将尽可能多的代码重定向到RAM中执行的方法。 最近和同事在讨论一个客户案例&#xff0c;客户 APP 工程是基于 IAR 开发环境&#xff0c;客户希望将工程里尽可能多的代码都重定向到 RAM 里执行&#xff0c;仅留必要或者指定的源文件代码在 Fl…

HTML5 浏览器支持

HTML5 浏览器支持 HTML5是最新版本的HTML&#xff0c;它引入了许多新特性&#xff0c;旨在更好地适应丰富的网络内容和服务。然而&#xff0c;由于浏览器的更新和兼容性问题&#xff0c;HTML5的浏览器支持情况可能会有所不同。本文将探讨HTML5的主要特性以及在不同浏览器上的支…

RabbitMQ(面试篇)

目录 MQ是什么 MQ的优点 消息队列有什么缺点 什么是RabbitMQ&#xff1f; rabbitMQ的使用常见 RabbitMQ基本概念 大家一起加油 &#xff01;&#xff01;&#xff01; MQ是什么 MQ是消息队列&#xff0c;是软件和软件之间同行的中间件产品 MQ的优点 异步处理&#xff0c…

【前端基础篇】JavaScript之BOM介绍

文章目录 浏览器对象模型&#xff08;BOM&#xff09;介绍1. 什么是BOM&#xff1f;2. Window 对象2.1 弹出框2.1.1 警告框2.1.2 确认框2.1.3 提示框 2.2 定时事件2.2.1 延时器2.2.2 定时器 2.3 Window 对象其他常用属性与方法2.3.1 获取窗口尺寸2.3.2 打开新窗口与关闭窗口2.3…

【习题】构建更加丰富的页面

判断题 1. Tabs组件可以通过接口传入一个TabsController&#xff0c;该TabsController可以控制Tabs组件进行页签切换。 A、正确(True) B、错误(False) 2. WebviewController提供了变更Web组件显示内容的接口&#xff0c;例如可以使用loadData来加载一个网页链接地址改…

【JS|第25期】探索HTTP POST请求:请求体的演变与应用

日期&#xff1a;2024年8月16日 作者&#xff1a;Commas 签名&#xff1a;(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释&#xff1a;如果您觉得有所帮助&#xff0c;帮忙点个赞&#xff0c;也可以关注我&#xff0c;我们一起成长&#xff1b;如果有不对的地方&#xf…

iOS RunLoop

一:什么是Runloop Runloop&#xff0c;正如其名&#xff0c;loop表示某种循环&#xff0c;和run放在一起就表示一直在运行着的循环 二:Runloop的创建? iOS并没有提供Runloop的创建方法,因为创建了现场自然会有一个Runloop. 所以只有获取Runloop的方法: NSRunLoop * runloo…

Leetcode 3267. Count Almost Equal Pairs II

Leetcode 3267. Count Almost Equal Pairs II 1. 解题思路2. 代码实现 题目链接&#xff1a;3267. Count Almost Equal Pairs II 1. 解题思路 这一题同样是题目3265. Count Almost Equal Pairs I的进阶版本。 它主要的区别在于说&#xff1a; 最大的操作次数增加到两次&am…

C# 循环访问目录树详解与示例

文章目录 一、目录树遍历的概念二、使用System.IO命名空间三、DirectoryInfo和FileInfo类四、递归遍历目录树五、示例&#xff1a;列出目录树中的所有文件和文件夹六、异常处理七、迭代方法八、总结 在C#中&#xff0c;访问文件系统是常见的需求之一。有时我们需要遍历目录树以…

kafak集群搭建-基于zookeeper方式

kafak集群搭建-基于zookeeper方式 1、准备3个kafka2、修改配置文件2.1、修改配置文件 3、启动测试3.1、先启动zookeeper3.2、再启动三台kafka 4、SpringBoot集成kafka集群4.1、项目配置文件application.yml4.2、kafka配置类4.3、启动SpringBoot程序 5、kafka集群架构分析6、查看…