关于面试:Linux运维工程师面试题5

3次阅读

共计 2518 个字符,预计需要花费 7 分钟才能阅读完成。

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

正文完
 0