Mysql数据库2

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

  1. TCP/IP 协议 :最常用,基于网络套接字,客户端和服务端可跨机器通信,Windows、Linux 都支持。
  2. Unix Socket 套接字 :本地文件套接字,只能本机访问,速度比 TCP 快,仅 Linux/Unix 支持,Windows 不支持。
  3. 命名管道(Named Pipe) :Windows 本地进程间通信,只能本机连接,仅 Windows 系统支持。
  4. 共享内存(Shared Memory) :Windows 本机通信方式,性能高,仅限本地,仅 Windows 支持。

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

  1. 连接器:负责客户端连接、身份认证、权限校验。
  2. 查询缓存 (MySQL8.0 已移除):缓存 SQL 查询结果。
  3. 分析器:词法、语法解析,检查 SQL 语法是否合法,生成语法树。
  4. 优化器:执行计划优化,选择索引、确定表连接顺序,生成最优执行计划。
  5. 执行器:调用存储引擎接口,按照执行计划完成 SQL 执行,返回结果。

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

  • MyISAM:非事务引擎,表级锁,查询速度快
  • Memory:内存存储,数据重启丢失,表级锁
  • CSV:csv 文本格式存储,不支持索引
  • Archive:归档引擎,高压缩,只支持插入、查询
  • Blackhole:黑洞引擎,接收 SQL 但不存数据,用于复制测试

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

事务、行锁 / 表锁、MVCC、索引实现、数据读写、崩溃恢复、外键约束、缓存、数据存储格式。SQL 解析优化属于上层,由 Server 层实现。

15. InnoDB 存储引擎和 MyISAM 存储引擎主要有哪些功能特点

InnoDB

  • 支持事务 ACID,支持回滚、崩溃恢复
  • 支持行级锁、MVCC、外键
  • 聚簇索引,支持热备份
  • 读写均衡,适合业务生产环境

MyISAM

  • 不支持事务,不支持回滚
  • 使用表级锁,并发写入性能差
  • 非聚簇索引,查询速度快
  • 崩溃容易损坏数据,适合只读场景

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

数据库文件夹、表空间文件、redo log、undo log、binlog 日志、错误日志、pid 文件、数据字典文件、ibdata 系统表空间、ssl 证书文件。

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

库信息、表信息、列字段信息、索引、约束、视图、存储过程、函数、触发器、表空间、权限对象等元数据。

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

  1. 5.7 及更早:元数据一部分存.frm磁盘文件,一部分存系统表,文件容易损坏。
  2. MySQL8.0:取消 frm 文件,全部元数据统一存储在 InnoDB 内部数据字典表,元数据放在 ibd 表空间,支持事务,元数据修改可以回滚,崩溃安全性提升。

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

可以灵活扩展元数据字段,版本升级时修改元数据结构不用修改表结构;元数据信息完整序列化,便于内部解析;兼容未来新增属性,减少 DDL 操作,提升兼容性。

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

  1. 系统表空间 ibdata1:存放数据字典、undo 日志等系统数据。
  2. 独立表空间 (per‑table) :每张 InnoDB 表单独一个.ibd文件,单表可以迁移、删除。
  3. 通用表空间 general:多个表共用同一个表空间文件。
  4. 临时表空间:存放临时表,重启自动清空。
  5. undo 表空间:存放 undo 回滚日志,用于事务回滚、MVCC。
相关推荐
IvorySQL7 小时前
PostgreSQL 日报|修复截断 zstd 备份检测(10 月 9 日)
数据库·postgresql
刘胡子大叔7 小时前
SQL 脚本的导入顺序
数据库·sql
代码什么用8 小时前
Spring对IoC的实现
数据库·spring
hz5678910 小时前
涉密视频会议设备配置指南:终端、音视频采集与配套设施选型
服务器·网络·数据库·安全·实时音视频·信息与通信·智能硬件
广州浮点FLOATLIC10 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
程序员Sunday10 小时前
MySQL 为什么使用 B+ 树索引?把范围查询、回表和覆盖索引连起来
数据库·mysql
半杯咖啡半行码10 小时前
Qt开发实战:数据库、MV 模式、QProcess与串口通信全攻略
数据库·qt
Yyyyyy~10 小时前
[ Mysql ] 库的操作
mysql
小米里的大麦11 小时前
16 MySQL 事务
数据库·mysql
西柚小萌新11 小时前
【LLM&&AI应用开发 八股文】--4.3.Agent智能体(下)
java·开发语言·数据库