跳槽可閱!網際網路公司DBA面試指南集錦!

趙鈺瑩發表於2018-06-08

    自動化運維時代,最先受到影響的就是DBA。傳統意義上,這類工程師是一個要求較高但在整個IT體系中所獲認可度不高的角色。在大多數人的認知中,DBA的工作基本相當於消防員,哪裡有火就滅哪裡,每天的大部分時間都用在基礎運維和系統修復上,沒有精力關注更有價值的事情,DBA應該如何成長?AI時代,DBA的生存模式應該如何轉變呢?

跳槽可閱!網際網路公司DBA面試指南集錦!

  本文總結了部分一線網際網路公司對DBA的面試要求,希望對所有DBA的職場進階有所幫助。(注:以下所列面試題並不特指Oracle DBA或者MySQL DBA)

  百度

  百度DBA的面試共分三輪進行,面試與筆試相結合,有時也會加入電話面試。對於所有公司的DBA而言,基礎概念都是必須掌握的,比如觸發器、儲存過程、索引、記憶體洩漏、事務、檢視等,本文就不對這些概念進行贅述了。除了基礎概念,百度可能會根據目前的業務發展特點詢問求職者可能的解決方案,比如有關海量資料的資料庫優化方法等問題,筆試環節求職者會拿到一張試卷,涉及的題型有選擇、填空、演算法、簡答和設計題,運維研發和DBA後面的大題會有不同,筆試前務必認真準備作業系統和計算機網路相關知識,DBA務必認真瞭解MySQL或者讀一下《高效能MySQL》這本書,會有很大幫助。

跳槽可閱!網際網路公司DBA面試指南集錦!

  百度對基礎概念十分看重,對技術實踐水平同樣很看重,面試題部分會考察很多與具體應用相關的問題,比如上面提到的海量資料的資料庫優化問題,根據此前面試者的反饋,該問題有三種解決方案,分別是約束、觸發器和自寫業務邏輯。使用約束,比如check、主鍵、外來鍵、非空欄位等更加方便並且效率更高;使用觸發器可以保證業務系統訪問資料庫時的資料完整性和一致性;自寫業務邏輯也是一種解決方法,但程式設計複雜且效率低下。其他曾經被問到的面試題有:給定一段有序連結串列和結點,寫出一段演算法可以實現將結點插入到連結串列中,同時返回一個新的有序連結串列頭指標;給定兩個有序連結串列,要求編寫一個函式把兩個連結串列合成一個新的有序連結串列並返回頭指標(注意:這道題要求一分鐘內給出兩種演算法);畫圖詳細逐步分析滑動視窗過大和滑動視窗過小;儲存過程的概念以及優缺點是什麼?寫出一個儲存過程的大概程式碼,如何在專案中應用併產生了哪些問題;現有N個球,兩個人交替取球,每次取的數量是1~M之間的一個數,規定誰先取到最後一個算勝利。如果讓你先取,你的必勝策略是什麼等問題。

  最後也會穿插一些表達個人觀點和想法的題目,比如你能為百度帶來什麼?你是因為對DBA這個職業不瞭解而喜歡它,還是因為了解而喜歡?你什麼時候會因為什麼事情感覺到壓力過大,如何解決?你對自己的筆試部分有哪些評價?等問題。

  美團

  面試輪次可能有三輪,但很多人都止步於第二輪,第一輪是電話面試,後兩輪是現場面試。電話面試主要就是簡單溝通求職者意向以及考察求職者的MySQL基礎,面試環節的問題會明顯比電話溝通環節難很多,非常考察求職者對細節性問題的思考和觀察力。如果你是校招或在宣講會上投簡歷,那麼你可能也面臨著一張筆試試卷,美團的技術類筆試題幾乎都是基礎演算法程式設計類還有一些測試類題目,雖然基礎,但可能會被人忽略。

跳槽可閱!網際網路公司DBA面試指南集錦!

  計算機網路、作業系統以及MySQL同樣是問題的考察重點,曾經被問到的面試題有Linux中硬連結和軟連線的區別;mha的實現原理是什麼,如何實現補齊差異的binlog;MySQL中雙寫的原理是什麼,為什麼會用到雙寫;pt線上更改表結構的原理是什麼,會不會鎖表等,美團面試官可能會針對一個問題不斷追問,回答問題就好,不要莫名提起自己可能並不熟悉的技術,面試前還是應該多看看資料結構和計算機網路相關方向的知識。

  阿里巴巴

  阿里巴巴內部不少DBA方向的技術人會不定期分享自己一路走來遇到過哪些問題,如何進入阿里巴巴併成長為一名DBA的,這些對求職者而言都是值得關注的且有價值的資訊。阿里巴巴也會在自己的平臺上釋出一些技術類文章或者舉辦一些線上線下的交流會,有意向的求職者也要記得關注。

跳槽可閱!網際網路公司DBA面試指南集錦!

  在面試部分,曾經被問到的面試題大致可以分為SQL tuning類、資料庫基本概念類、備份恢復類以及系統管理類。第一類可能被問到的面試題有列舉幾種表連線方式;在不借助第三方工具的前提下,如何檢視SQL執行計劃;如何使用CBO以及CBO和RULE之間的區別;如何定位重要(消耗資源多)的SQL;如何跟蹤某個sessione的SQL等。第二類都是概念考察,比如pctused and pctfree表示什麼含義,有什麼作用,描述tablespace和datafile之間的關係等,此處不做過多贅述。第三類可能包括歸檔的含義;如果一個表在2004-08-04 10:30:00被drop,在有完善歸檔和備份的情況下,如何恢復等。第四類有對於效能存在問題的系統,你的診斷處理思路是什麼;列舉幾種診斷IO、CPU和效能狀況的方法;如果系統需要在很大的表上建立索引,會考慮哪些因素,如何做以儘量減少對應用的影響等。(以上問題可以在網路上找到部分答題者的回答,由於答案參差不齊,此處就不一一展示了)

  進入阿里巴巴,軟體具備的同時硬體也要過硬,校招對學歷要求較高,社招對從業經驗、專案經歷要求較高,所以投遞簡歷之前務必先稽核一下自己的硬體條件是否過硬。

  騰訊

  騰訊的面試由筆試和麵試組成,面試可能是2對1的模式。根據部分求職者的反饋,筆試題並不會太難,主要是基礎知識的考察,騰訊一般都不會在筆試階段放大招,但是雖說不難,但掛的人還是不少,越是基礎的東西越是容易記不住。

跳槽可閱!網際網路公司DBA面試指南集錦!

  面試主要分為兩部分,知識面的考察和過往經歷的考察。面試官會先了解求職者擅長且熟悉的資料庫型別,根據相應型別出題考察。然後,考察求職者的過往專案經歷、處理過的重大事件以及事件反思和回顧等,對於平時善於總結和思考的DBA而言,這個問題很容易回答。總體來說,騰訊並不會抓著技術這一條線問得很深,基礎夠紮實且善於總結反思的DBA還是很有希望通過面試的。

  58同城

  58同城的DBA面試題分為筆試和麵試兩部分。筆試部分還是一些基礎概念的考察。面試部分,面試官會根據筆試情況進行,同時會穿插一些簡單演算法和語句的考察,比如根據有一個表Student,其中屬性有學號Sno、姓名Sname、性別Ssex,請寫一個SQL語句查詢男女生各有多少人寫一個SQL語句;寫一個程式查詢兩個字串中最長重合子字串(演算法題,在紙上手寫程式碼或者給出思路);有一個字串,還有另一個字串,求第二個字串在第一個字串中的出現次數,你能想出多少種方法,並給出演算法思想。簡單面試題可能會被問到資料庫使用的資料結構、TCP/UDP的內容、用過的Linux版本、專案經歷介紹等。

跳槽可閱!網際網路公司DBA面試指南集錦!

  網易

  網際網路公司校招時更傾向於讓面試者先筆試,社會招聘一般是兩面技術,一面人力。校招試卷的組成部分是基礎概念考察和兩個演算法題,涉及Linux基本命令、SQL語句、索引、資料優化方向。社招會根據求職者的專案經驗發問,比如最有收穫的專案是什麼,其中用到的主要技術都有哪些,遇到過哪些難題,如何解決的以及某類資料庫(SQL Server、Oracle以及MySQL)分析方向的查詢分析、查詢重寫、代價估計、執行計劃、儲存管理等,面試官會根據這個過程中涉及的知識點逐個詢問。

跳槽可閱!網際網路公司DBA面試指南集錦!

  技術面可能被問到的面試題有資料庫隔離級別並舉例說明、Linux IO排程的幾種方式、平時調式程式碼的習慣、資料庫索引的實現、B樹索引查詢資料的過程等,也會包括一些主觀問題,比如資料庫工程師的職責是什麼等。人力主要是對簡歷和真實性和性格的考察,這裡要注意——言多必失,說重點就可以,尤其是性格部分。面試過程中如果有不清楚的問題,直接向面試官做出說明,注重細節,不要含糊不清得試圖混過去。

  京東

  京東的整體面試分為會相對輕鬆,在未錄用到所投崗位時,面試官也會根據面試結果決定是否推薦到其它適合的崗位。京東在招的主要是MySQL DBA,主要是負責京東MySQL生產環境中各種問題的定位和解決、MySQL相關架構組的設計以及優化方案制定、MySQL資料庫相關專案的開發,面試中MySQL相關問題肯定會被挖的很深,所以求職者需要提前做好準備。

  此外,京東對硬體以及Linux方向的考察會多於其他幾家公司,這可能與其內部需求相關,求職者務必提前做好充分準備,對計算機網路、作業系統等知識重新全面梳理複習。

跳槽可閱!網際網路公司DBA面試指南集錦!

  綜上,網際網路公司內部對MySQL和Oracle的需求較大,求職者可先對企業目前在使用的資料庫進行簡單瞭解,但MySQL相關問題幾乎是所有面試必問題,筆試部分基本是對基礎概念的考察,計算機網路、作業系統和SQL相關知識是考試重點,對於自己的專案經驗一定要真實填寫,尤其是細節部分一定要多次確認,很多面試官都有摳細節的習慣,以免被連續追問而冷場。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31077337/viewspace-2155813/,如需轉載,請註明出處,否則將追究法律責任。

相關文章