公司招聘MySQL DBA面試心得

2021-06-21 04:14:54 字數 3147 閱讀 5271

公司招聘mysql dba面試心得

1    2年mysql dba經驗

其中許多有水分,一看到簡歷自我介紹,說公司專案的時候,會寫上linux系統維護,mssql server專案,或者oracle data gard專案,一般如果有這些的話,工作在3年到4年的話,他的2年mysql dba管理經驗,是有很大的水分的。剛開始我跟領導說,這些不用去面試了,肯定mysql dba經驗不足,領導說先麵麵看看,於是我就面了,結果很多人卡在基礎知識這一環節之上,比如:

(1)有的卡在複製原理之上

(2)有的卡在binlog的日誌格式的種類和分別

(3)有的卡在innodb事務與日誌的實現上。

(4)有的卡在innodb與myisam的索引實現方式的理解上面。

.........

個人覺得如果有過真正的2年mysql專職dba經驗,那麼肯定會在mysql的基本原理上有所研究,因為很多問題都不得不讓你去仔細研究各種細節,而自己研究過的細節肯定會記憶深刻,別人問起一定會說的頭頭是道,起碼一些最基本的關鍵引數比如seconds_behind_master為60這個值60的準確涵義,面試了10+的mysql dba,沒有乙個說的準確,有的說不知道忘記了,有的說是差了60秒,有的說是與主上執行時間延後了60秒。

2   對於簡歷中寫有熟悉mysql高可用方案

我一般先問他現在管理的資料庫架構是什麼,如果他只說出了主從,而沒有說任何ha的方案,那麼我就可以判斷出他沒有實際的ha經驗。不過這時候也不能就是斷定他不懂mysql高可用,也許是沒有實際機會去使用,那麼我就要問mmm以及mha以及mm+keepalived等的原理實現方式以及它們之間的優勢和不足了,一般這種情況下,能說出這個的基本沒有。

3   對於簡歷中寫有批量mysql 資料庫伺服器的管理經驗

這個如果他說有的話,我會先問他們現在實際線上的mysql資料庫數量有多少,分多少個節點組,最後問這些節點組上面的slow log是如何組合在一起來統計分析的。如果這些他都答對了,那麼我還有一問,就是現在手上有600臺資料庫,新來的機器,mysql都安裝好了,那麼你如何在最快的時間裡面把這600臺mysql資料庫的mysqld服務啟動起來。這個重點在於最快的時間,而能準確回答出清晰思路的只有2個人。

4   對於有豐富的sql優化的經驗

首先問mysql中sql優化的思路,如果能準備說出來,ok,那麼我就開始問explain的各種引數了,重點是select_type,type,possible_key, ref,rows,extra等引數的各種值的含義,如果他都回答正確了,那麼我再問file sort的含義以及什麼時候會出現這個分析結果,如果這裡他也回答對了,那麼我就準備問profile分析了,如果這裡他也答對了,那麼我就會再問乙個問題,那是曾經tx問我的讓我鬱悶不已的問題,乙個6億的表a,乙個3億的表b,通過外間tid關聯,你如何最快的查詢出滿足條件的第50000到第50200中的這200條資料記錄。

5   對於有豐富的資料庫設計經驗

這個對於資料庫設計我真的沒有太多的經驗,我也就只能問問最基礎的,mysql中varchar(60) 60是啥含義,int(30)中30是啥含義? 如果他都回答對了,那麼我就問mysql中為什麼要這麼設計呢? 如果他還回答對了,我就繼續問int(20)儲存的數字的上限和下限是多少?這個問題難道了全部的mysql dba的應聘者,不得不佩服提出這個問題的金總的睿智啊,因為這個問題回答正確了,那麼他確實認認真真地研究了mysql的設計中關於字段型別的細節。至於豐富的設計資料庫的經驗,不用著急,這不我上面還有更加厲害的dba嗎,他會搞明白的,那就跟我無關了。

6  關於mysql引數優化的經驗。

首先問他它們線上mysql資料庫是怎麼安裝的,如果說是rpm安裝的,那麼我就直接問調優引數了,如果是

原始碼安裝的,那麼我就要問編譯中的一些引數了,比如my.cnf以及儲存引擎以及字元型別等等。然後從以下幾個方面問起:

(1)mysql有哪些global記憶體引數,有哪些local記憶體引數。

(2)mysql的寫入引數需要調整哪些?重要的幾個寫引數的幾個值得含義以及適用場景,比如innodb_flush_log_at_trx_commit等。

(3)讀取的話,那幾個全域性的pool的值的設定,以及幾個local的buffer的設定。

(4)還有就是著名的query cache了,以及query cache的適用場景了,這裡有乙個陷阱,就是高併發的情況下,比如雙十一的時候,query cache開還是不開,開了怎麼保證高併發,不開又有何別的考慮?

7  關於事物隔離級別。

這個最起碼你得知道那4個隔離級別的名字吧,以及之間的區別,還有你當前自己

資料庫裡面設定的是哪個級別吧,可惜的是面試了那麼多,能準備想都不用想的回答出的就只有乙個,而且他只說出了前3個級別的名字。

8  關於熟悉

mysql的鎖機制。

那麼gap鎖,next-key鎖,以及innodb的行鎖是怎麼實現的,以及myisam的鎖是怎麼實現的等,可惜能準備說出這些的只有乙個mysql dba。

9  關於熟悉mysql集群的。

我就問了ndbd的節點的啟動先後順序,再問配置引數中的記憶體配置幾個重要的引數,再問sql節點中執行乙個join表的select語句的實現流程是怎麼走的?ok,能回答的也只有乙個。

10  關於有豐富的備份經驗的

能全部回答出來的沒有乙個,不過沒有關係,只要回答出mysqldump或者xtrabackup其中乙個的也可以。

11 關於有豐富的線上恢復經驗的

然後如果你用xtrabackup備份要多久,恢復要多久,大家都知道copy-back這一步要很久,那麼你有沒有辦法對這一塊優化。

.............

先想到這麼多,可能有朋友就好心提醒了,你mysql dba招聘好了沒有,如果沒有招聘好,萬一人家看到這裡,全部準備好,那不相當於作弊啊?

我想說的是,我只是說出了想問的知識點,我可沒有說答案啊,如果能自己找出所有準確答案的,那也挺不錯了,至少這探索精神是有的,不過就算過了我這一關基礎知識面試,別忘了,上面還有比我更厲害的dba,他會繼續ko你的,他問的東西就比較深入了,要過那一關挺不容易的,要不然剛開始乙個月他面試了10多個全部被他pass了,然後他說好麻煩啊先讓我把把關把不合格的pass掉,讓他省點時間,哈哈,所以我不用擔心的。

當然可能是我們公司也比較弱吧,畢竟目前不能跟ali,tx,baidu等真正的mysql dba團隊相比,也許真正的基礎知識紮實的mysql dba已經投奔它們而去了,在此呼喊下,我們這些網際網路公司也是有追求的,特別是在招聘mysql dba這一塊,對基礎知識很注重的。

氣泡排序 公司招聘

人物簡介 暫時幸福的小糖和小灰總到了一起,可是,小灰雖然n,但是沒工作。志向高遠,小公司的看不上 小糖喜歡吃糖,所以小灰只好去xx公司面試 這家公司的初賽人太多了 因為剛剛建立,不知好壞 小灰一去,幾分鐘之後 第乙個交卷 龍套們沸騰了 幾天過去,小灰初賽通過,去面試了 到了面試場 不得不說,小灰真的...

招聘面試心得

祖國始終選擇選擇祖國的人。這是我在招飛手冊的上看到一句話,這句話不斷地實踐中得到驗證。大二的我提前上了 就業指導 這門課,目的是想提前了解就業形勢,就業對於我來說其實是既熟悉又陌生。高三那年我參加了空軍飛行員選拔,通過了複選並且高考分數達標,而我在選擇前往北京定選和南理工自主招生時,我選擇了後者。這...

IBM公司的招聘題

原文 ibm公司的招聘題,20分鐘內答對才能進ibm 考驗考驗諸位 這是引用的別人的題,本人已經解出來了 ibm公司的招聘題,20分鐘內答對才能進ibm 村子中有50個人,每人有一條狗。在這50條狗中有病狗 這種病不會傳染 於是人們就要找出病狗。每個人可以觀察其他的49條狗,以判斷它們是否生病,只有...