设为首页 加入收藏

TOP

Linux运维工程师面试题(5)
2023-09-09 10:25:42 】 浏览:83
Tags:Linux 程师面

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).

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇QEMU tap数据接收流程 下一篇linux主要目录详解

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目