Linux運維工程師面試題(5)

来源:https://www.cnblogs.com/waluna/archive/2023/08/30/17668163.html
-Advertisement-
Play Games

[toc] # Linux運維工程師面試題(5) > 祝各位小伙伴們早日找到自己心儀的工作。 > 持續學習才不會被淘汰。 > 地球不爆炸,我們不放假。 > 機會總是留給有有準備的人的。 > 加油,打工人! ## 1 SELECT 語句處理的順序 查詢執行路徑中的組件:查詢緩存、解析器、預處理器、優化 ...


目錄

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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ## 教程簡介 R是用於統計分析、繪圖的語言和操作環境。R是屬於GNU系統的一個自由、免費、源代碼開放的軟體,它是一個用於統計計算和統計製圖的優秀工具。R語言的核心是解釋電腦語言,其允許分支和迴圈以及使用函數的模塊化編程。 R語言允許與以C,C ++,.Net,Python或FORTRAN語言編寫 ...
  • 作者:TinyThing 鏈接:https://www.jianshu.com/p/b52db905f020 ## 0x0 背景 > 項目中使用LocalDateTime系列作為dto中時間的類型,但是spring收到參數後總報錯,為了全局配置時間類型轉換,嘗試瞭如下3中方法。 > > **註:本文 ...
  • ### 歡迎訪問我的GitHub > 這裡分類和彙總了欣宸的全部原創(含配套源碼):[https://github.com/zq2599/blog_demos](https://github.com/zq2599/blog_demos) ### 本篇概覽 - 本篇是《java與es8實戰》系列的第四 ...
  • 昨天分享了一個在WebApi中如何接收參數的文章 傳送門,然後有新人小伙伴就問了,那文件上傳呢,這個怎麼弄,藉此我寫了一個小demo,分享給大家。 通常來說,上傳文件,我們是使用POST,還是老規矩先上代碼: txt文件 這是需要上傳的txt文件。 指定文件參數名 代碼 [HttpPost("Upl ...
  • ## 前言 在軟體系統中,有時候面臨著“一個複雜對象”的創建工作,其通常由各個部分的子對象用一定的演算法構成;由於需求的變化,這個複雜對象的各個部分經常面臨著劇烈的變化,但是將它們組合在一起的演算法卻相對穩定。如何應對這種變化?如何提供一種“封裝機制”來隔離出“複雜對象的各個部分”的變化,從而保持系統中 ...
  • ##### 常用基本配置項 ```xml net35; net40; net45; net451; net452; net46; net461; net462; net47; net471; net472; net48; netstandard2.0; netstandard2.1; netcore ...
  • ## 前言 在抽象工廠模式開篇之前,我們先思考一個問題,如果我們要設計一套房子,其他的組件暫時不考慮,我們僅僅考慮房頂、地板、窗戶、房門進行設計。什麼樣的風格暫時未知,可能會有很多種類。可以先設計一套古典風格的房子,再設計一套現代風格的房子,再設計一套歐式風格的房子....這麼多套房子需要設計,需求 ...
  • 原文鏈接:https://www.cnblogs.com/ysmc/p/17663663.html 最近技術交流群里,還有不少小伙伴不知道 FromRoute、FromQuery、FromBody 這幾個特性是怎麼使用的,也不清楚它們之間的區別在哪裡,特意寫下這個文章,希望可以幫助到迷茫的小伙伴。 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...