[Mysql数据库] 知识点总结2
11. 请说明 SQL 层的组件名称和各自的作用。
答:- 解析器:验证查询的语法和语义并将其转换为标准形式
- 授权:验证连接的用户是否被允许运行查询并且是否具有足够的权限
- 优化器:为每个查询创建最佳执行计划,以决定使用哪些索引以及以何种顺序处理表
- 查询执行:完成每个查询的执行计划
- 查询日志:记录服务器接收或执行的查询信息
12. MySQL 8.0 除了默认的存储引擎 InnoDB 之外,还有哪些常用的存储引擎?
答:MyISAM (常用在旧的系统中);MEMORY;ARCHIVE;BLACKHOLE;MERGE;CSV; NDBCLUSTER (在 MySQL Cluster 发行版中可用)。
13. MySQL 数据库的哪些功能依赖于存储引擎的实现?
答:- 存储介质:磁盘,内存,网络数据节点,空 (BLACKHOLE)
- 事务处理能力:具有提交和回退的多语句事务,隔离等级
- 锁定:表级别之上的锁定粒度,多版本并发控制 (MVCC)
- 优化:一些存储引擎使用索引、内部缓存、缓冲区和内存来优化性能
- 备份和恢复
- 外键的引用完整性
- 全文本搜索
- 空间数据
14. InnoDB 存储引擎和 MyISAM 存储引擎主要有哪些功能特点?
答:InnoDB 是 MySQL 的默认存储引擎,它支持事务安全(符合 ACID 原则)、MVCC(多版本并发控 制)、行级锁定、支持外键引用完整性约束、损坏后的快速自动恢复、支持内存缓存数据和索引缓冲池。
MyISAM 是 MySQL5.5 之前的默认存储引擎、快速简单、支持 FULLTEXT 索引、支持空间数据 类型和索引、支持表级锁、仅支持原始表级别的备份和恢复。
15. 请说出 mysqladmin、mysqldump、mysqlslap、mysqlshow、mysqlcheck 客户机程序的用途。
答:mysqladmin:用于监视、管理和关闭 MySQL 服务器。
mysqldump:以 SQL 脚本方式创建逻辑备份的备份工具,可用来恢复数据库结构和内容。
mysqlslap:进行负载模拟的压力测试用客户机。
mysqlshow:用于显示数据库对象元数据的实用程序。
mysqlcheck:用于检查和优化表的实用程序。
16. 在 MySQL 数据目录下,都存放哪些数据库组件?
答:服务器日志文件,包括常规查询日志、慢速查询日志、二进制日志和审计日志
InnoDB 日志文件,包括 redo 和 undo 日志
InnoDB 系统表空间,包含 InnoDB 数据字典、更改缓冲区、双写缓冲区
各数据库的数据目录,存放存储引擎数据文件(.ibd)和序列化字典信息(.sdi) 状态文件
17. MySQL 的数据字典记录的元数据类型有哪些?
答:表的定义,存储过程定义,访问控制列表(ACL),视图定义,模式对象定义等。
18. 请说明 MySQL 8.0 和之前版本在管理元数据上的区别。
答:在 MySQL 8.0 之前,数据字典将元数据存储在不同的位置,不方便管理。
在 MySQL 8.0 中,所有元数据都存储在 InnoDB 表中,文件系统中没有其它元数据文件。
19. MySQL 8.0 使用 JSON 序列化元数据存储,有什么好处?
答:MySQL 8.0 通过在元数据发生变化时对其以 JSON 格式进行序列化来提供崩溃安全性。
注意,SDI 只是元数据的备份,它不是元数据本身,数据字典位于 InnoDB 数据字典表空间中。
20. MySQL 8.0 的表空间类型有哪几种,各自的用途是什么?
答:InnoDB 表空间是存储一个或多个 InnoDB 表和相关索引的数据文件。可分为:数据表空间、 还原表空间和临时表空间。数据表空间又分为系统表空间、单表文件表空间和通用表空间。
数据表空间保存系统和用户的表行数据,还原表空间存放还原数据,临时表空间存放临时表数据。
21. 对于 InnoDB 系统表空间,它保存有哪些数据,默认的存放位置和文件名称是什么?
答:在 InnoDB 系统表空间中存储了元数据和缓冲区,包括:
- InnoDB 数据字典:表、索引和列元数据
- 更改缓冲区:对二级索引页面的更改
- 双写缓冲区:确保崩溃安全写入
默认的存放位置为 /var/lib/mysql,文件名称是 ibdata1。
22. 请给出单表文件表空间和通用表空间的区别以及各自的适用场合。
答:单表文件表空间可以提供表压缩功能,在使用 truncate 截断表时能快速回收表空间。
通用表空间在大批量删除数据时对文件系统的消耗更少,还可以减少存储元数据时内存的使用。
23. 对于通用表空间类型,每个表空间有且仅有一个数据文件,这个表述对不对?
答:对。每个 InnoDB 通用表空间仅支持一个数据文件,不能添加第二个数据文件。