之前說道(http://www.cnblogs.com/carsonzhu/p/5867823.html)在網易招聘官網不小心投遞錯了崗位:數據庫管理工程師,結果筆試后收到了去杭州面試的通知,雖然崗位不對,但還是打算珍惜這個機會,去體驗一把,畢竟路費也是可以報銷的!
在面試前一天也是很認真地總結了一遍數據庫的面試知識點,發現工作量還是有些巨大,感覺怎么也不可能在一個晚上就全部准備充分。so,盡管如此,還是義無反顧地奔赴杭州(有這樣的機會也是緣分)吧!
到達濱江區網易公司后,發現工作環境確實挺不錯,唯一的缺點就是不像上海那樣隔一段就至少有一家全家啥的便利店,導致買瓶水喝都挺困難,只能叫外賣!簽完到之后,等待的間隙中遇到一個妹子向我搭訕,問我有沒有玩過游戲,比如說RPG類的,有什么體驗心得等。交流的過程中發現妹子是浙大學心理學的碩士,本科也是上海的,交大吧,報的是用戶分析的崗位。
進入正題吧,面試的過程是這樣的:
首先,我拿出簡歷給面試官,然后做了簡要的自我介紹。
->面試官問我,為什么的簡歷上的求職意向是軟件工程師?
我便向他解釋,軟件開發是我的主要求職意向,不過之前的實習或項目經歷中涉及數據庫的東西比較多,由於得到了數據庫管理工程師的面試機會,想嘗試一下!
->那談談你對數據庫管理工程師這個崗位的理解?
這個問題我理解成數據庫開發工程師的職責了,於是說,主要職責是設計和開發數據庫管理系統。這里他並沒有糾正我,后面他跟我說數據庫管理工程師是從事管理和維護數據庫管理系統(DBMS) 的相關工作人員的統稱,他屬於運維工程師的一個分支,主要負責業務數據庫從設計、測試到部署交付的全生命周期管理。意思就是偏運維,實際操作型的工作會比較多,我這才立馬反映過來了。
->看你的簡歷,用過mysql是吧,用的什么版本?
我說用的5.6
->那有用過5.1,5.5等版本嗎?他們之間有什么區別?
參考:MySQL 4.1/5.0/5.1/5.5/5.6各版本的主要區別
->常用的存儲引擎是啥?談談你對熟悉的幾個存儲引擎的理解?
我說最常用的是InnoDB (參考:MySQL存儲引擎總結 或 四種mysql存儲引擎 )
->事務知道吧?談談你對它的理解?
講了事務的概念,及它的ACID特性(即原子性,一致性,隔離性,持久性)
->如果我想刪除一個表中的數據內容,不刪除其表結構,該怎么做?如果既刪除表內容又刪除表結構呢?
這里主要談論了truncate,delete和drop的區別(參考:SQL truncate 、delete與drop區別)
->知道多版本並發控制(MVCC)嗎?談談你對它的理解?畫個圖看看解釋看看
我說多版本並發控制是並發控制的方法之一(參考:mysql的mvcc(多版本並發控制))
->數據庫的隔離級別?MySQL的默認事務隔離級別是哪個?如何解決臟讀?
大多數的數據庫系統的默認事務隔離級別都是:Read committed
而MySQL的默認事務隔離級別是:Repeatable Read
參考:數據庫事務隔離級別
->知道https,說說它和http的區別?
http+SSL
->你用github嗎?上面的代碼量是多少?怎么fork別人的代碼進行修改提交,寫出此過程的命令?
->你所熟知的git命令寫一寫?
->linux中尋找某個字符串出現的次數,寫出它的命令?說說你對awk,find,grep的了解?
->知道crontab 定時執行任務嗎?說說它具體是怎么用的?
->怎么在linux中查看內存,cpu等信息?
->問到在學校做的項目:什么是主數據?主數據管理是干嘛的?主數據管理的難點在哪?有什么理論深度?
->db2的安裝過程
->談到我面的崗位一般是C++,於是問我:C++中的內存泄漏怎么檢測和處理?用的什么工具?
整個面試過程進行了一個小時左右,面試官真的很好,有的知識點我理解的不夠的時候他都一直提醒我不要緊張,還一直引導我,說我很有勇氣來面這個錯投的崗位,說其實只要你這方面的基礎足夠扎實也是可以要你的,很多東西需要日常熟練的操作,畢竟這個崗位是運維類的,平時要多注重操作!真的是非常感謝他,雖然最終的結果顯然是不能進入二面,但還是收獲不少!
--感謝生命中每一個讓你成長,給你收獲的人!!