一、
1.简单描述MySQL管理课的课程目标
描述MySQL产品和服务,访问MySQL资源,安装MySQL服务器和客户机程序,在正在运行的服务器上升级MySQL,描述MySQL架构,解释MySQL如何处理、存储和传输数据,配置MySQL服务器和客户程序,使用服务器日志和其他工具监控数据库活动,创建和管理用户和角色,从常见安全风险中保护数据,维持一个稳定的系统,解决服务器速度变慢和其他常见问题,识别和优化性能不佳的查询 ,定义和实施备份策略,执行对数据的物理和逻辑备份,描述MySQL复制及其在高可性和可扩展性方面的作用,配置简单和复杂的复制拓扑,管理复制拓扑,配置和管理innoDB.

2.请说出几个使用MySQL作为核心业务支撑平台的全球性大型企业。
Facebook,Booking.com,Uber,box,YouTbue等

3.对于MySQL8.0版本,Oracle公司提供的认证有哪些?
认证助理(MySQL),认证专业人士(MySQL数据库管理员,MySQL开发者),认证专家(MySQL cluster数据库管理员)mysql认证

4.写出你所知道的了解MySQL社区动态和技术演进的资源和渠道。
邮件,MySQL论坛,MySQL社区文章,MySQL通讯,社交媒体渠道。

二、
1.MySQL的RPM安装通常分为不同的包,包括Server,Common,Client,Devel,Libs,Libs-compat,Test,Source,请写出上述每个包的功能
server        所有服务器的二进制文件,配置和数据库
common服务器端和客户端通用文件
client   连接到数据库库服务器的所有客户端组件
devel          编译mysql程序需要的库
libs共享库
libs-compat  共享兼容性库
test           mysql测试组件(在线处理功能)
source  mysql源代码

2.MySQL除了PRM安装之外,在Linux平台上还有那种形式的安装,请给出简单的说明。
DEB 软件包可用于 APT Linux 系统,可以单独使用也可以捆绑使用
从源代码安装MySQL:配置编译选项,在没有预编译二进制文件平台运行mysqld,向MySQL添加自己的修改。
从二进制存档安装MySQL:创建mysql用户和组,以mysqld身份登录,将存档解压缩到合适的目录,初始化数据目录,创建初始配置文件,填充时区表。

3.在Linux上安装好MySQL之后,默认数据目录的具体位置是什么?该目录下都保存哪些数据库组件?在目录/usr/abin、/usr/bin、/etc、/var/log分别保存哪些组件?
具体位置:/var/lib/mysql
数据库组件:数据库目录,其他数据库目录,innoDB日志文件和系统表空间
分别文件:mysqld服务器,mysql和其他的客户机程序以及脚本,my.cnf配置文件,mysqld.log错误日志。

4.在windows上安装MySQL之后,mysqld服务器程序,mysql客户机程序、my.ini配置文件、mysql系统数据库、二进制日志文件分布保存在什么位置?
mysqld服务器程序,mysql客户机程序在C:\program files\MySQL\MySQL Server<version>下的\bin
my.ini配置文件在C:\program files\MySQL\MySQL Server<version>下的my.ini

mysql系统数据库、二进制日志文件分布在D:<Windows_version-dependent path>\MySQL Server <version>下的\data

5、MySQL实用程序和客户机程序的区别在哪儿?
实用程序无需连接服务器即可执行某些功能的MySQL程序
客户机程序连接到服务器

6.结合教材2-37的图示,请说出musql.server、mysql_safe、mysql_multi三个服务器助手程序的作用。
musql.server:用作mysqld_safe的包装器,用于Linux和Oracle Solaris等使用System V运行级目录的系统
mysql_safe:它设置错误日志,然后启动mysqld并监视它。如果mysqld异常终止,mysqld_safe将重新启动它。如果服务器未正确启动,可查看错误日志。
mysql_multi:用来简化单个主机上多台服务器管理的 Per脚本,它可以启动或停服务器,并报告服务器是否正在运行 。

7.使用mysql_configq_editor客户机程序可以创建加密登录路径凭证,请问加密过的用户名、口令和主机选项保存在什么地方?如何以文本的方式查看加密过的信息?
当前用户主目录(/root)中的.mylogin.cnf
创建登录路径(mysql_config_editor set),以纯文本格式查看单个登陆路径 (mysql_config_editor print),以纯文本格式查看所有登录路径 (mysql_config_editor print --all),删除登陆路径 (mysql_config_editor remove)。

8.请说出常用的客户机程序mysqladmin、mysqldump、mysqlap、mysqlshow、mysqlcheck的用途。
mysqladmin:用于监视,管理和关闭 MySQL的实用程序 。
mysqldump:通过创建SQL脚本来恢复数据库结构和内容的备份实用程序 。
mysqlap:负载模拟客户机
mysqlshow:用于显示数据库对象元数据的使用程序 
mysqlcheck:用于检查和优化表的使用程序

9.更改root口令有几种方法,请具体写出你所熟悉的两种。
使用初始口令登陆 MySQL并使用ALTER USER 语句更改它:
mysql --user=root --password
使用mysqladmin更改root口令:
mysqladmin --user=root  --password password

10.写出在Linux中启动和停止MySQL服务器的命令。
停止:service mysql stop
启动:service mysql start

三、
1. MySQL 服务器进程 mysqld 由哪三层组成,从各自所实现的功能角度分别加以说明。
连接层:(通讯协议、线程、验证)处理用户连接请求
SQL层: 处理、优化SQL语句,记录日志。解析器授权优化程序查询执行查询日志记录。以最优程序执行语句返回结果。
存储层: (磁盘、内存、网络)数据库存储结构,以特定方式管理存储。

2. MySQL 支持的通讯协议都有哪些?其连接方式和所支持的操作系统有何不同。
TCP/IP,本地远程均可连接,适用所有操作系统。
Socket file,本地连接,适用UNIX衍生操作系统,包括Linux,BSD,Max OS。
Shared memory,本地连接,适用Windows。
Name pipes,本地连接,适用Windows。

3. 请说明 SQL 层的组件名称和各自的作用。
解析器:验证查询的语法和语义并将其转换为标准形式
授权:验证连接的用户是否被允许运行查询并且对查询所引用的对象具有足够的权限
优化器:为每个查询创建最佳执行计划。 这涉及决定使用哪些索引以及以何种顺序处理表.
查询执行:完成每个查询的执行计划
查询日志:记录服务器接收或执行的查询

4. MySQL 8.0 除了默认的存储引擎 InnoDB 之外,还有哪些常用的存储引擎?
MySQL 包含的其他引擎:MyISAM (常用在旧的系统中),MEMORY, ARCHIVE,BLACKHOLE, MERGE, CSV,FEDERATED (默认被禁用), NDBCLUSTER (在 MySQL Cluster 发行版中可用

5. MySQL 数据库的哪些功能依赖于存储引擎的实现?
存储介质: 磁盘,内存,网络数据节点,空 (BLACKHOLE)
事务处理能力:具有提交和回退的多语句事务, 隔离等级
锁定:表级别之上的锁定粒度,多版本并发控制 (MVCC)
备份和恢复:复杂的存储引擎,如 InnoDB 和 NDB,在内部保持一致性以提高性能。文件系统(原始)备份可以使用更简单的引擎。
优化: 一些存储引擎使用索引、内部缓存、缓冲区和内存来优化性能
外键的引用完整性
全文本搜索
空间数据

6. InnoDB 存储引擎主要有哪些功能特点?
事务安全(符合ACID)
• MVCC (多版本并发控制 )
– InnoDB 行级锁定
– Oracle 风格的一致非锁定读取
• 布局表数据以优化基于主键的查询
• 支持外键引用完整性约束
• 在大型数据卷上实现最高性能
• 损坏后的快速自动恢复
• 用于在内存中缓存数据和索引的缓冲池

7. MyISAM 存储引擎主要有哪些功能特点?
在许多旧的系统中使用 使用修复表恢复损坏的 MyISAM 表。
– 是 MySQL5.5 之前的默认存储引擎
• 快速简单,但在服务器崩溃时会导致表损坏
– 使用 REPAIR TABLE 可以恢复损坏的 MyISAM 表
• 支持 FULLTEXT 索引
• 支持空间数据类型和索引
• 支持表级锁
• 由于文件格式简单,因此支持原始表级别的备份和恢复

8. 在 MySQL 数据目录下,都存放哪些数据库组件?
数据目录:服务器日志文件,状态文件,innoDB日志文件,innoDB SystemTable space
数据库目录:存储引擎数据文件(.ibd),序列化字典信息(.sdi)

该目录包含数据库的
存储引擎特定数据文件
– 例如:用于 InnoDB 的 tablename.ibd,其中包含表数据和元数据
– 其他存储引擎的序列化字典信息 (.sdi) 元数据文件

9. MySQL 的数据字典记录的元数据类型有哪些?
表的定义,存储过程定义,ACL,视图定义,方案对象定义

10. 请说明 MySQL 8.0 和之前版本在管理元数据上的区别。
MySQL8中有事物数据字典,是所有 MySQL 服务器子系统的单一元数据存储库,它基于标准SQL定义更易于扩展公共数据字典,使用安装程序自动升级,使用事务存储引擎InnoDB,改进INFORMATION_SCHEMA

11. MySQL 8.0 使用 JSON 序列化元数据存储,有什么好处?
每次元数据发生更改时,MySQL 都会创建它的副本

12. MySQL 8.0 的表空间类型有哪几种,各自的用途是什么?
数据表空间(系统表空间,单表文件表空间,通用表空间),
还原(undo)表空间:保存还原数据
临时表表空间:保存临时表空间

13. 对于系统表空间,它保存有哪些数据,默认的存放位置和文件名称是什么?
InnoDB 在系统表空间中存储元数据和缓冲区,包括InnoDB 数据字典:表、索引和列元数据,更改缓冲区:对二级索引页面的更改,双写缓冲区:确保崩溃安全写入
存放位置:/var/etc/.cnf
文件名称:一个名为 ibdata1 ,ibdata2…的文件

14. 请给出单表文件表空间和通用表空间的区别以及各自的适用场合。
区别:单表文件表空间,默认启用,包含来自单个表的数据和索引,不能在同一个通用或系统表空间中混合压缩和未压缩的表,InnoDB 删除并重新创建截断的单表文件表空间,将
可用空间释放回文件系统
通用表空间,包含来自多个表的数据和索引,删除大量数据的语句的文件系统开销更少,消耗更少的内存来存储表空间元数据

15. 对于通用表空间类型,每个表空间有且仅有一个数据文件,这个表述对不对?
不对,通用表空间可以创建于mysql数据目录外的其他表空间,其可以容纳多张表,且其支持所有的行格式
对,通用表空间包含多个数据表类型

16. innodb_data_file_path 和 innodb_file_per_table 这两个参数各自的作用是什么?
innodb_data_file_path:指定多个innodb tablespace 文件、
innodb_file_per_table:将每个表的数据单独保存

17. 请说明重做(redo)和还原(undo)各自在 MySQL 数据库中的作用。
重做:在对数据文件进行更改之前存储 InnoDB 更改操作,默认位于数据目录中。
还原日志:存储将被事务修改的修改之前的数据副本,以便 InnoDB 可以访问数据的早期版本,也称为回滚段(rollback segments),默认存储在 undo 表空间中,用于 MVCC 和回退

18. 请比较 MySQL 全局和会话内存的不同点。
全局内存:按 MySQL 服务器实例分配,在服务器启动时分配一次,在服务器关闭时释放,当所有物理内存用完时,操作系统开始交换(使用磁盘页面文件),具体的缓冲区和缓存包括。Mysqld用到的内存。
会话内存:每个会话动态分配,会话结束或不再需要时释放,主要用于处理查询结果,使用的缓冲区的大小是每个连接相关的。

四、
1.要显示已配置的服务器选项可以有哪几种方法,分别举例说明。
在mysql 提示符下,使用命令:SHOW GLOBAL VARIABLES;
在命令行中,如果服务器正在运行:使用命令:mysqladmin variables
在命令行,即使服务器没有运行 :使用命令:mysqld --verbose --help

2. 使用选项文件有哪些好处?
(1)每次启动服务器时,不需要在命令行上指定选项,使用起来更方便,复杂选项不易出错
(2)通过查看选项文件时可以在一个位置查看服务器配置
(3)可以使用分组选项创建多个配置,每个配置都在其自己的配置文件中,可以使用不同的配置在同一主机上启动多个服务器,也可以使用替代配置启动测试或开发服务器

3. 给出在 Linux 系统上的标准选项文件的名称和保存的位置。
名称:my.cnf
位置:/etc/my.cnf的全局选项文件
如果设置了 MYSQL_HOME 环境变量,它会搜索 $MYSQL_HOME/my.cnf 文件

4. 请说明选项文件中的 [client] 和 [server] 组的适用范围。
[client]:适用于所有客户端程序的选项
[server]:适用于所有服务器程序或脚本的选项

5. 如果在多个配置文件中指定了一个相同的选项值,或者在同一配置文件内的多个组中指定了相同的选项值,系统如何处理?
如果在多个配置文件中指定了一个选项值,则后面文件中的选项会覆盖前面文件中的选项
如果在同一文件内的多个组中指定了一个选项值,则文件中较晚的选项优先
(1)从命令行加载或忽略选项文件:指定以下之一作为命令行上的第一个选项
--no-defaults:
--defaults-file=file_name:
--defaults-extra-file=file_name:
(2)使用指令之一加载选项文件
--!include file_name
--!includedir directory:
(3)显示选项文件中的选项
执行 my_print_defaults  mysql client命令,会显示 [mysql]和[client]组中的选项,或者(对于相同的结果),执行命令:mysql --print-defaults mysql client

6. 请说明 --no-defaults 命令行长选项的作用。
--no-defaults:不读取任何选项文件

7. MySQL 维护的变量从作用域分为 GLOBAL 和 SESSION,从功能上分为动态和持久的,你是如何理解的。
GLOBAL 变量影响服务器的整体运行
SESSION 变量影响单个客户端连接.

8. 要查看系统变量,有哪几种常用的办法,举例说明。
(1)显示系统变量
--使用命令SHOW [GLOBAL|SESSION] VARIABLES; 列出所有可用的变量及其值
--使用变量SHOW VARIABLES LIKE 'read_only'; 列出特定的变量值:
--设置一个新值,然后显示:SET GLOBAL read_only=ON;
                  SHOW VARIABLES LIKE 'read_only';
(2)使用 Performance Schema 查看变量
--global_variables 和 session_variables 表包含全局变量和当前会话变量
--variables_by_thread 表包含所有活动线程的会话变量

9. 在同一台服务器上启动多个 mysqld 实例时,必须要隔离的对象有哪些
数据目录,连接层,日志和 PID 文件,InnoDB 表空间和日志文件

五、
1. MySQL 服务器都提供了哪几种类型的日志文件?说明每种日志的用途。
错误日志( Error log ):与启动、关闭和异常情况有关的诊断信息 
常规查询日志( General query log ):服务器从客户端收到的所有语句 
慢速查询日志( Slow query log ):需要很长时间执行的查询
审计日志( Audit log ):企业版基于策略的审计
二进制日志( Binary log ):修改数据的语句

2. MySQL 8.0 默认启用哪两种日志记录? 
二进制日志和错误日志

3. 请说明常规查询日志和慢速查询日志在记录的内容上有何不同。 
(1)常规查询日志:记录连接信息和接收到的语句的详细信息 
– 记录每个连接的时间和类型以及所有操作的进程 ID 
– 记录对所有表执行的所有语句 
– 排除在从服务器上存储为基于行的二进制日志的更新操作 
(2)慢速查询日志:记录执行时间超过指定阈值的语句;可以记录不使用索引的语句,;可以将额外的统计信息记录到 FILE 目标位置。

4. 如何配置才能将慢速查询日志和常规查询日志在文件和表里同时保存?
Log output服务选项指定 TABLE 或 FILE 日志输出

5. 从 DBA 的角度,谈一下使用 Performance schema 的目的或作用?
是一组内存表,用来跟踪性能度量,有助于深入了解数据库活动。
使用性能模式监控MySQL,MySQL可以用来跟踪性能度量,性能模式可帮助我们调试性能问题,有助于深入了解数据库活动,比如监控哪些查询正在进行,I/O等待统计信息,历史性能数据。帮助系统架构师和性能顾问调节innoDB数据和日志文件存储硬件。

6. Performance schema 中的顶级检测组件都有哪些? 
idle:被检测的空闲事件。该检测没有子组件。
error:被检测的错误事件。该检测没有子组件。
memory:被检测的内存事件。
stage:被检测的阶段事件。
statement:被检测的语句事件。
transaction:被检测的事务事件。 该检测没有其他组件 。
wait:被检测的等待事件

7. 请谈一下 MySQL 8.0 新增加的 sys 模式的作用。 
sys 模式帮助我们解释典型调优和诊断用例的性能模式 。
它提供的视图将性能模式数据汇总为更易于理解的格式。Sys提供的存储过程可以协助 我们配置性能模式并生成诊断报告而存储函数可以帮助我们查询性能模式配置并以不同方式格式化输出。

8. 使用 audit_log_filter_linux_install.sql 脚本可以配置基于规则的 MySQL 审计功能,这句话对吗?p40-p41
对的

9. MySQL Enterprise Monitor 都能提供哪些管理数据库的功能? 
功能包括: 持续监测能力,自动预警,指导,可视化查询分析和图表,帐户管理

10. 请给出 SHOW PROCESSLIST 命令输出的列名,并说出每个列的作用
SHOW PROCESSLIST 将生成以下列:
Id: 连接标识符
User: 发出语句的 MySQL 用户
Host: 发出语句的客户机的主机名
db: 选择默认数据库,否则为NULL 
Command: 线程正在执行的命令类型 
Time: 线程处于当前状态的时间(秒)
State: 指示线程正在执行的内容的操作、事件或状态
Info: 关联语句的前 100 个字符或 NUL

六、
1. 对于验证和授权,它们有什么区别,各自发生在用户访问过程的哪个阶段?
在连接到MySQL 服务器并执行查询时,会验证我们的身份并为我们的活动授权
验证:验证用户的身份,使用user表。
授权:验证用户的权限

2. MySQL 用户账户的定义信息保存在数据库的什么地方? 
此帐户上的用户名(mysql user表)

3. 在定义用户时,要避免在主机名中使用通配符,除非绝对必要。请给出如何检查用户定义中包含有通 配符的办法。 
除非绝对必要并且经过恰当的审核,否则应避免在主机名中使用通配符,以免滥用或意外暴露按如下所示运行定期检查:Mysql> SELECT User,Host FORM mysql.user WHERE Host LIKE ‘%\%%’;

4. 角色是一个不允许连接的帐户,因为它是作为锁定帐户创建的。可以使用 ALTER USER 语句解锁角色, 将其转换为允许连接的帐户。请问这个说法对不对,给出验证结果。
对,角色在创建时被锁定,没有密码,并且被分配了默认的身份验证插件,但是可以将一个用户帐户角色授予另一个用户在。 CREATE USER 或 ALTER USER 语句中使用 DEFAULT ROLE 子句。
ALTER USER kari@localhost DEFAULT ROLE r_viewer, r_updater;
ALTER USER kari@localhost DEFAULT ROLE ALL;

5. 请说明 FILE、PROCESS、RELOAD 这三个系统权限的作用? 
FILE:允许运行 SQL 语句,在服务器主机文件系统中读写文
PROCESS:允许使用 SHOW PROCESSLIST 语句查看客户端正在执行的所有语句
RELOAD:允许执行 FLUSH 语句以重新加载日志和权限表

6. 在授予权限时,WITH GRANT OPTION 或 WITH ADMIN OPTION 子句会对被授予的权限有什么影响? 
WITH GRANT OPTION授予全局级别的所有权限,包 括向其他帐户授予权限的能力。
WITH ADMIN OPTION 允许用户将角色授予其他用户帐户
如果账户可以将其部分或全部特权授予其他账户,则输出将在其适用的每条GRANT语句,末尾会显示WITH GRANT OPTION

7. 在权限管理中,不能将口令和对象直接关联,不能对表行进行授权,不能明确拒绝对特定对象比如表 的访问。谈一下你对这三个判断的理解。 
口令在身份验证是应用。权限管理针对对象授权。
MySQL 授权系统的主要功能是将经过验证的用户与数据库权限关联起来,必须设置恰当的帐户和权限才能让授权生效,角色作为权限的集合,必须激活角色才能进行授权。

8. 请说明授权表的内容和它的作用?
user 表包含服务器已知的每个帐户的记录,以及它的全局权限,它还显示与帐户有关的其他信息,每个账户必须有一个 user 表记录; 服务器通过读取该表的内容来确定是接受还是拒绝每个连接尝试。
如果每个帐户在全局级别以外的级别拥有权限,则它在其它授权表中也有记录
MySQL 服务器在启动时将授权表从 mysql 数据库读取到内存中,并使所有访问控制决策 都以这些表为依据。

9. 你是如何理解“最小权限原则”的?
最小权限原则是指每个系统和系统用户都应该具有完成任务所必须的最小权限集合,因此对于系统管理员而言,一个用户应该只能访问履行他的相关职责所需访问的数据和硬件。

七、
1.哪些常见的措施可以用来防范网络安全风险?
使用防火墙来控制对 MySQL 端口的访问
考虑限制服务器使用的网络接口
使用安全安装脚本创建安全初始配置:mysql_secure_installation
确保 MySQL 帐户受口令保护并且没有不必要的权限
不要授予超出用户需要的权限
确保只有经过授权的客户端才能连接到服务器以访问其数据库. 
不通过网络传输明文(未加密)数据

2.请对安全套接字层(SSL)和传输层安全性(TLS)协议加以简要得说明。
SSL:位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。
TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS记录协议和TLS握手协议。

3.请对 ca.pem、server-cert.pem、server-key.pem、ca-key.pem、client-cert.pem、client-key.pem 这些与 SSL有关的文件,分别给出功能说明。
ca.pem:颁发服务器数字证书的 CA 的数字证书
server-cert.pem:服务器的数字证书,用于验证服务器的身份并包括公钥
server-key.pem:服务器的私钥
ca-key.pem:CA 的私钥
client-cert.pem:与客户端共享的客户端证书
client-key.pem:与客户端共享的客户端私钥

4.MySQL 8.0 企业防火墙都有哪些特点和功能?
该插件仅适用于企业版
应用级防火墙
允许或拒绝SQL语句
按帐户模式运行:
可以为受信任的帐户禁用
防火墙将语句转换为语句摘要,然后将它们存储在白名单中

八、
1.    请说明一个稳定的系统的具体含义。
稳定的系统在一段时间内表现出可预测的行为 
稳定的系统指服务器在没有计划外中断的情况下运行,计划很少中断,应用程序表现出可预测的性能。

2. 在确定数据库失败原因时,都要考虑哪些方面的因素?
考虑架构中的所有组件:服务器,连通性,应用软件。
考虑不可抗力:自然灾害或其他异常事件

3. 如何查看 InnoDB 表所占用的实际存储空间大小?
InnoDB 行和索引数据存储在数据页中,默认页面大小为 16 KB ,InnoDB 表和索引由包含数据的叶子页和包含页指针的非叶子页组成。
计算逻辑大小:数据和索引使用为每个表从 INFORMATION_SCHEMA.TABLES 中查询 DATA_LENGTH 和 INDEX_LENGTH 列。
计算物理大小:使用INFORMATION_SCHEMA.FILES 语句,视图包含有关 InnoDB 表空间的信息

4. 谈谈对数据库进行纵向扩展和横向扩展的适用场合。
纵向扩展:添加更多的 CPU、存储或主内存资源,以提高任何单个节点的处理能力
横向扩展:环境中的服务器和编写软件(应用程序或存储引擎)。如:分片数据库、分析或备份复制、InnoDB 集群、MySQL 集群中的 NDB 存储引擎。

5. 说出在判断一个数据库性能问题时的一般性思路或步骤。
(1)确定问题的性质:应用程序、数据库或服务器配置最近是否发生了变化?问题自第一次出现后是否自行解决?问题是否以可预测的时间间隔发生?
(2)确定问题:将应用程序、MySQL 和 OS 设置以及其他度量与基线进行比较,重新执行用于创建基线的测试;在功能级别定位问题,确定问题的表现;创建清晰的错误信息,特定行为改变,间歇性或持续性症状和可重现的症状问题陈述。

6. 请对 InnoDB 的锁机制做一个完整的说明。
InnoDB表级锁有四种类型:S,X,IS,IX
当另一个事务持有锁,只有当它们的锁类型兼容时,事务才能获取锁。
事务必须先获得表意向锁(IS 或 IX),然后才能锁定行:如果事务A持有该行上的IS或IX,而B请求其共享锁,则这些锁兼容。

7. 使用什么方法可以快速查询 InnoDB 锁冲突的相关信息?
在 State 列中查找等待:State: Waiting for table metadata lock
使用 Information Schema 和 Performance Schema 监控数据锁

8. MySQL 8.0s 版本的 InnoDB 数据库意外宕机后,有几种恢复的方法?
InnoDB 在失败后可以自动恢复
使用 CHECK TABLE 或客户端程序查找不一致、不兼容和其他问题
通过使用 mysqldump 转储表、删除后并从转储文件重新创建它来恢复该表
要在崩溃后修复表,使用 --innodb_force_recovery 选项重新启动服务器,或从备 份中恢复表

九、
1.    请说明 EXPLAIN 语句的作用。
使用 EXPLAIN 查看优化器对索引的选择,生成一个查询执行计划。

2. 为什么使用索引会比全表扫描可以提供更好的查询性能?
创建索引可以提高查询性能,实现对数据行的高效访问

3. MySQL 数据库是如何自动维护索引统计信息的。
MySQL 的优化器使用索引键分布的统计信息来决定
InnoDB 持久存储统计信息和统计数据自动更新。

4. mysqlcheck 客户机程序都有哪些功能?
可以比使用 SQL 语句更方便,适用于 InnoDB、MyISAM 和 ARCHIVE 表
执行特定于表、特定于数据库、所有数据库检查
维护--analyze: 执行、--check执行、--optimize执行选项。

5. 在性能分析期间使用 Invisible Indexes 有什么好处
Invisible Indexes使得能够从优化器“隐藏”索引,测试删除索引对查询性能的影响,DML语句修改数据时,服务器继续更新索引,可以使用 VISIBLE 关键字 “取消不可见”。

6. 什么是直方图(histograms),它在使用上和索引有什么不同?
向优化器提供有关非索引列中数据分布的额外信息
优化器知道如何为索引列分配数据,但不知道如何给不建索引的这部分列分配数据
估计这些列中的数据分布,使优化器能够做出更好的决策

十、
1.    请详细说明热备、温备和冷备的特点和不同。
(1)热备 (Hot backups) 通常允许应用程序完全访问数据
冷备 (Cold backups) 通常不允许应用程序访问数据
温备 (Warm backups) 允许应用程序读取数据,但不允许修改数据
(2)热备是在数据库正常读取和修改数据时进行,几乎不会中断客户与数据交互或操作数据的 能力,对于读取和修改数据的操作仍可访问系统
冷备执行备份时,用户无法访问数据,阻止对数据执行的任何活动 ,在系统启动和运行时不干扰系统的性能。
可以在访问数据时执行温备,可以在访问数据时执行温备,可能会导致性能问题,因为无法在备份期间修改数据。

2. 在 MySQL 中支持的备份类型有哪几种,分别予以说明。
逻辑备份:使用 mysqldump 或 mysqlpump 执行完整的数据转储
物理备份:过复制数据文件创建,必须恢复到相同的存储引擎和 MySQL 版本,可以跨计算机体系结构进行恢复,执行备份和恢复要比逻辑备份和恢复更快
基于快照的备份:提供文件系统的逻辑冻结版本,可以从中进行MySQL备份
基于复制的备份:MySQL 支持单向异步复制,其中一台服务器作为主服务器,而其他一台或多台服务器作 为从属服务器

3. 执行逻辑备份要具备哪些条件,其优缺点在哪。
逻辑备份是温备,创建逻辑备份时,MySQL 服务器必须处于运行状态,其他应用程序可以在逻辑备份期间执行读取操作,服务器通过读取正在备份的表的结构和内容来创建备份文件 ,然后将表结构和数据转换为 SQL 语句
使用逻辑备份,可以备份本地和远程 MySQL 服务器,原始备份只能在服务器主机上执行

4. 物理备份一般是用来满足什么样的数据库维护需求?
服务器在备份期间不得修改数据文件,
通过使用将要备份的数据文件与 MySQL 服务器分离开的技术来最大限度地减少对 MySQL 和应用程序的影响

5. 基于快照的备份能否用来进行数据库损坏时的恢复,请说明理由。
不能,快照是数据存储的某一时刻的状态记录;备份则是数据存储的某一个时刻的副本
基于快照的备份是创建数据的时间点副本,通常针对快照副本执行原始备份
提供文件系统的逻辑冻结版本,可以从中进行MySQL备份,冻结的文件系统不一定包含一致的数据库映像,当从这样的文件系统中恢复时,InnoDB 必须执行自己的恢复以确保没有未完成的事务
大大减少数据库和应用程序不可用的时间

6. 请对基于复制的备份的特点加以说明。
MySQL 复制可用主服务器 (master) 用于生产应用系统和从属服务器 (slave) 用于备份目的,这消除了对生产应用系统的影响
从属服务器的备份可以是逻辑的,也可以是原始二进制的
成本更高必须有另一台服务器和存储器来存储数据库的副本

7. 结合教材 10-27“不同备份方法的比较”和 10-29“备份策略:决策图”,请详细说明制定备份策略时的决策路径和方法。
10-27图解释不同备份方法的比较适用于全部的存储引擎。
MySQL企业备份支持热备和温备但仅限企业版可用。
Mysqldump支持热备和温备,可以免费使用。
快照支持热备,需要快照卷或文件系统支持才能使用。
复制支持热备,SQL支持温备,os复制语句支持冷备或温备,这三个方法都可以免费使用。

检查系统是否停机,如果是则使用冷备份,否则,查看数据规模,若是小于几个GB的数据规模则使用mysqldump或者mysqlpump恢复备份;若是大于等于几个GB的数据规模,则使用复制、快照、MySQL企业备份恢复备份。

MySQL所有问答题相关推荐

  1. mysql系列问答题_(2)MySQL运维基础知识面试问答题

    面试题001:请解释关系型数据库概念及主要特点? 面试题002:请说出关系型数据库的典型产品.特点及应用场景? 面试题003:请解释非关系型数据库概念及主要特点? 面试题004:请说出非关系型数据库的 ...

  2. svg嵌套svg_使用SVG掩盖效果

    svg嵌套svg 探索SVG第3部分(EXPLORING SVG PART 3) This is an advanced article about SVG. Here we are discussi ...

  3. MySQL运维基础面试问答题(42题)

    面试题001:请解释关系型数据库概念及主要特点? 关系型数据库模型是把复杂的数据结构归结为简单的二元关系,对数据的操作都是建立在一个或多个关系表格上,最大的特点就是二维的表格,通过SQL结构查询语句存 ...

  4. linux mysql怎么样_最强Linux和Mysql面试题套餐,让你的面试无懈可击!

    引言: 大家好,我是一菲,在软件测试当中linux 操作系统和Mysql数据库的内容是十分的知识同时也是十分重要的.所以一菲这两天通过查阅资料等其他方式为大家梳理了liunx和Mysql面试题大礼包, ...

  5. mysql 中修改对象_在MySQL中,创建一个数据库后,还可以对象其进行修改,不过这里的修改是指可以修改被创建数据库的相关参数,也可以修改数据库名。...

    [多选题]注射时,在(  )情况下,采用较高的注射速率. [单选题]通常,所设置的模具温度是指和制品接触的模腔内表面在(   ). [单选题]反映某一事件发生强度的指标应选用 [判断题]当试样制备之后 ...

  6. mysql load data infile 导入数据 某一列 空_Sql数据挑战赛amp;网络销售案例分析

    SQL挑战赛 第一期: 1: 编写一个查询,列出员工姓名列表,员工每月工资超过2000美元且员工工作时间少于10个月.通过提升employee_id对结果进行排序 select name from e ...

  7. JQuery和php方面的填空题,PHP复习题(问答题)

    PHP复习题(问答题) 1.PHP的标量数据类型有哪些? 答案: 有布尔型.整型.浮点型.字符串型. 2.PHP的复合数据类型有哪些? 答案: 数组.对象. 3.简述输出命令echo和print的功能 ...

  8. 可以访问本地mysql服务器的命令是_在用户访问本地MySQL服务器时,访问命令可以省略“–h localhost”。...

    [单选题]1.男性,46岁,胃溃疡伴瘢痕性幽门梗阻.行毕Ⅱ式胃大部切除术后第8天,突然发生上腹部剧痛,呕吐频繁,每次量少,不含胆汁,呕吐后症状不缓解.体检:上腹部偏右有压痛.首先考虑并发了 [判断题] ...

  9. 有如下MySQL表_有一个名为app的MySQL数据库表,其建表语句如下: CR

    两个思路:从选项推答案(使用选择题):如果是问答题如何分析. 1.从选项推答案 1.1 选项中非标准语句问题 ① GROUP BY后SELECT列有非聚合列:标准SQL - SELECT 聚合列,聚合 ...

最新文章

  1. Apache提示You don‘t have permission to access / on this server问题解决
  2. Vue - class与style绑定
  3. 羊车门问题python_python编程羊车门问题代码示例
  4. python一行行写文件_python一行行写文件-女性时尚流行美容健康娱乐mv-ida网
  5. android数据库给单选赋值,如何使用android studio将单选按钮的值保存到mysql数据库?...
  6. ElasticSearch IK 分词器快速上手
  7. c语言 整型转bool,C语言的布尔类型(_Bool)【转】
  8. java基础(一)-面向对象思想
  9. 设计师交流平台!!!
  10. 自动关机win10_win10系统U盘使用步骤酷比魔方平板电脑windows安装教程
  11. ISO14443A读卡流程(作为示例参考)
  12. 什么是html阅读,HTML 介绍
  13. nginx配置CSP策略和Nonce随机数方案
  14. 在keil中创立一个头文件
  15. 讲的是切片,但好像又不只是切片?
  16. 借助英特尔® AVX-512 指令集进行数据包处理
  17. Android签名aab文件
  18. 1024 的那天,我这个三线的程序员是这样度过的
  19. 计算机网络系统工程验收材料,网络系统工程验收规范.doc
  20. 自动阅读工作室换IP的解决方案

热门文章

  1. 【稳定性day14】BASIC技术架构—蚂蚁金服十五年的演进之路
  2. 企业微信代运营方案怎么做 微信代运营网站有哪些
  3. 一个人最高的境界:半
  4. 金融是不是一群不事生产的人,对社会毫无贡献的人,互相对赌的零和游戏?
  5. 普林斯顿 计算机专业排名,普林斯顿计算机系统专业排名2020年
  6. 【推荐系统论文精读系列】(五)--Neural Collaborative Filtering
  7. 从 1 秒到 10 毫秒!在 APISIX 中减少 Prometheus 请求阻塞
  8. php 商品图片分享,PHP合成活动商品图片分享海报
  9. adb进入recovery 以及fastboot模式
  10. catia草绘标注工具