Linux运维工程师面试题(5)

简介: Linux运维工程师面试题(5)1 SELECT 语句处理的顺序2 MySQL 高可用方案有哪些3 mysql 主从复制原理4 mycat 读写分离原理5 MHA 高可用原理6 mysqldump 备份的原理7 drop, delete 与 truncate 的区别,哪个最快8 判断主从延迟的方法9 MySQL 主要的索引类型10 MySQL 中 myisam 与 innodb 的区别

[toc]

Linux运维工程师面试题(5)

祝各位小伙伴们早日找到自己心仪的工作。
持续学习才不会被淘汰。
地球不爆炸,我们不放假。
机会总是留给有有准备的人的。
加油,打工人!

1 SELECT 语句处理的顺序

查询执行路径中的组件:查询缓存、解析器、预处理器、优化器、查询执行引擎、存储引擎

SELECT语句的执行流程:

FROM Clause --> WHERE clause --> GROUP BY --> HAVING clause --> SELECT --> ORDER BY --> LIMIT

2 MySQL 高可用方案有哪些

  • 主从复制+mycat 读写分离
  • MHA(Master High Availability)
  • Galera Cluster

3 mysql 主从复制原理

用户提交数据更新到主库,主库会生成二进制日志,写入到 bin log 中;主库开启 dump 线程,用来给从库的 io 线程传送 bin log;从库的 io 线程去请求主库的 bin log,并将得到的 bin log 写入到中继日志(relay log)中,sql 线程会读取 relay log 文件中的日志,并解析成具体的操作,来执行数据库更新,保证主库和从库数据一致,完成主从复制。

4 mycat 读写分离原理

Mycat 的原理中最重要的一个动词是"拦截",它拦截了用户发送过来的 SQL 语句,首先对 SQL 语句做了—些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等,然后将此 SQL 发往后端的真实数据库,并将返回的结果做适当的处理,最终再返回给用户。

5 MHA 高可用原理

  1. 从宕机崩溃的 master 保存二进制日志事件(bin log events);
  2. 识别含有最新更新的 slave;
  3. 应用差异的中继日志(relay log)到其他的 slave;
  4. 应用从 master 保存的二进制日志事件(bin log events);
  5. 提升—个 slave 为新的 master;
  6. 使其他的 slave 连接新的 master 进行复制。

6 mysqldump 备份的原理

是一个 mysql 的客户端命令,通过 mysql 协议连接至 mysql 服务器进行备份。mysqldump 命令将数据库中的数据备份成一个文本文件。表的结构和表中的数据将存储在生成的文本文件中。它先使用 select 查出需要备份表的数据和需要备份的表的结构,再在文本文件中生成一个 CREATE 语句。然后将表中的所有记录转换成一条 INSERT 语句。然后通过这些语句,就能够创建表并插入数据。其实就是相当于模拟mysql客户端去连接数据库,将mysql中的数据生成一个标准输出,在屏幕打印,一般配合标准输出重定向,导入到一个文件中。mysqldump 整体备份的基本流程如下:

  1. 调用 FTWRL(flush tables with read lock),全局禁止写。
  2. 开启快照读,获取此时的快照(仅对 innodb 表起作用)。
  3. 备份非 innodb 表数据( .frm、.myi、.myd 等)。
  4. 非 innodb 表备份完毕后,释放 FTWRL 锁。
  5. 逐一备份 innodb 表数据。
  6. 备份完成。

7 drop, delete 与 truncate 的区别,哪个最快

drop 直接删掉表;truncate 删除表中数据,再插⼊时自增长id又从1开始;delete 删除表中数据,可以加 where 子句。想要删除部分数据用 delete;想要删除表用 drop; 想保留表但是把数据删除,如果和事务无关用 truncate。

  1. delete 语句执⾏删除的过程是每次从表中删除⼀⾏,并且同时将该⾏的删除操作作为事务记录在⽇志中保存以便进⾏回滚操作。truncate table则⼀次性地从表中删除所有的数据并不把单独的删除操作记录记⼊⽇志保存,删除⾏是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器,执⾏速度快。
  2. 表和索引所占空间。当表被 truncate 后,这个表和索引所占⽤的空间会恢复到初始⼤⼩,⽽ delete 操作不会减少表或索引所占⽤的空间。drop 语句将表所占⽤的空间全释放掉。
  3. ⼀般⽽⾔,在删除速度上,drop > truncate > delete。
  4. 应⽤范围:truncate 只能对 table,delete 可以是 table 和 view。
  5. truncate 和 delete 只删除数据,⽽ drop 则删除整个表(结构和数据)。
  6. truncate 与不带 where 的 delete:只删除数据,⽽不删除表的结构(定义);drop 语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index);依赖于该表的存储过程/函数将被保留,但其状态会变为:invalid。

8 判断主从延迟的方法

通过命令 show slave status 查看 seconds_behind_master 的值来判断

NULL - 表示 io_thread 或是 sql_thread 有任何一个发生故障,也就是该线程的 Running 状态是 No,而非Yes。

0 - 该值为零,是我们极为渴望看到的情况,表示主从复制状态正常。

9 MySQL 主要的索引类型

  • 普通索引:是最基本的索引,它没有任何限制;
  • 唯一索引:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一;
  • 主键索引:是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值;
  • 组合索引:指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用组合索引时遵循最左前缀集合;
  • 全文索引:主要用来查找文本中的关键字,而不是直接与索引中的值相比较,mysql 中 MyISAM 支持全文索引而 InnoDB 不支持;

10 MySQL 中 myisam 与 innodb 的区别

  1. innodb⽀持事物, myisam不⽀持事物
  2. innodb⽀持⾏级锁, myisam⽀持表级锁
  3. innodb⽀持MVC, myisam不⽀持
  4. innodb⽀持外键, myisam不⽀持
  5. innodb不⽀持全⽂索引,myisam⽀持

关于我
全网可搜《阿贤Linux》
CSDN、知乎、哔哩哔哩、博客园、51CTO、掘金、思否、开源中国、阿里云、腾讯云、华为云、今日头条、百家号、GitHub、个人博客
公众号:阿贤Linux
个人博客:blog.waluna.top
https://blog.waluna.top/


原文链接: Linux运维工程师面试题(5).

相关实践学习
CentOS 8迁移Anolis OS 8
Anolis OS 8在做出差异性开发同时,在生态上和依赖管理上保持跟CentOS 8.x兼容,本文为您介绍如何通过AOMS迁移工具实现CentOS 8.x到Anolis OS 8的迁移。
目录
相关文章
|
1天前
|
云安全 运维 安全
AK泄漏28小时:运维工程师的极限自救
随着比特币等加密货币的价格持续上涨,挖矿活动成为了黑客们眼中的一块肥肉。尤其是在2024年至2025年间,比特币价格突破历史高位,吸引了大量投资者和投机者的目光。与此同时,这也引发了新一轮的黑客攻击浪潮,目标直指那些拥有强大计算资源的企业和个人用户。
|
2月前
|
弹性计算 运维 安全
为了提升运维工程师及开发者
为了提升运维工程师及开发者
|
3月前
|
人工智能 运维 自然语言处理
今晚围观—>安全运维工程师现场直播用通义灵码发现和修复代码漏洞
12 月 18 日晚 19:30 分,阿里云中小企业直播间「AI 编码助手一年养成记:从“打酱油”到企业开发“真正助手”」见。
|
5月前
|
运维 监控 网络协议
|
4月前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
350 3
|
4月前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
298 2
|
5月前
|
存储 运维 搜索推荐
|
7月前
|
网络协议 网络架构
OSPF邻居关系建立失败?揭秘网络工程师面试中最常见的难题,这些关键步骤你掌握了吗?网络配置的陷阱就在这里!
【8月更文挑战第19天】OSPF是网络工程中确保数据高效传输的关键协议。但常遇难题:路由器间无法建立OSPF邻居关系,影响网络稳定并成为面试热点。解决此问题需检查网络连通性(如使用`ping`),确认OSPF区域配置一致(通过`show running-config`),校准Hello与Dead计时器(配置`hello`和`dead`命令),及核查IP地址和子网掩码正确无误(使用`ip address`)。系统排查上述因素可确保OSPF稳定运行。
126 2
|
8月前
|
弹性计算 运维 Linux
运维工程师必备的摸鱼神器:阿里云智能助手OS Copilot
OS Copilot 概述与体验评测摘要 阿里云的OS Copilot是一款基于大模型的智能操作系统助手,作为高级运维工程师,体验者发现它在系统诊断和性能优化上尤其有用,简化了如重置ECS密码和安全组配置等任务,提升了工作效率。 OS Copilot的易用性和安全性得到肯定,操作手册详细且交互性强,减少了用户在不同页面间切换的需要。在辅助编程方面,它能帮助非专业开发者编写和理解代码,对运维工作中的开发技能补充有很大帮助。与GitHub Copilot等产品相比,OS Copilot的独特之处在于结合了Linux操作的支持。
333 3
运维工程师必备的摸鱼神器:阿里云智能助手OS Copilot