如何寫出高效率的SQL
阿新 • • 發佈:2021-07-29
如何寫出高效率的SQL
螞蟻金服一面:分散式架構 50分鐘
- 個人介紹加專案介紹20分鐘
- 微服務架構是什麼,它的優缺點?
- ACID CAP BASE理論
- 分散式一致性協議,二段、三段、TCC,優缺點
- RPC過程
- 服務註冊中心宕機了怎麼辦?
- 微服務還有其他什麼元件
- 分散式架構與微服務的關係
- 你有什麼問題要問我的。
螞蟻金服二面:1個小時
上來不用自我介紹,專案介紹,直接開始
演算法來兩道
- 各種排序演算法、未排序常規資料查詢第K大的數,時間複雜度。
- 二叉樹的深度
作業系統來兩道
- 虛擬記憶體分頁瞭解不?
- 程序和執行緒區別?
資料庫來三道
- 第一二三正規化是什麼?
- 一個表一千個列值為true和false,寫sql 查詢 有300個列值為true的行。
- 髒讀和幻讀是什麼?
JVM
- 什麼物件會從新生代晉升到老年代
多執行緒
- 一個任務分成十個任務,最後彙總計算,不能用fork/join
- 開源框架原始碼瞭解不?
- 資料建模兩道、個人題開放性題
安全方面的問題
- 對安全方面瞭解多少?
- 安全協議有哪些 、https是啥?
介紹你做的專案和其中的難點。
三面
個人感覺著重技術深度。
- 從ConcurrentHashMap一路問到鎖&鎖優化->LongAdder->偽共享->快取行填充->cas等諸多技術細節;
- 從hystrix一路問到原理->自己如何實現->如何優化->響應流程式設計(reactive streams);
- 從簡單的生產者消費者模式設計到如何高效健壯實現等等。
四面
- 如何倒序輸出單向連結串列?
- 個人直接想法是用棧先進後出的特點,把連結串列資料讀到棧裡然後輸出。
- 有更好的實現方式嗎?
- 主要問專案情況,然後根據一個專案,問如果量級擴大1000倍,你會怎麼做?有哪些優化措施?高效能&高可用措施?
五面:HR面
給大家丟擲幾大深坑問題:
- 個人的職業規劃是什麼
- 你遇到的最大問題或者是困難是什麼
- 你如何看待阿里
- 你能為阿里帶來什麼
- 你的優缺點是什麼
這幾個問題,大家深思啊,不多說。
面試總結:
- 技術基礎必須紮實:演算法、資料結構、作業系統等,螞蟻金服面試對技術的基礎非常重視,基礎紮實的同學有利於在前兩輪突出重圍。
- 技術寬度:主要集中在高併發、多執行緒、分散式架構,大以及常用中介軟體(快取等)的選型和比較。
- 技術原理深入:重點還是提前準備好JVM、多執行緒高併發這塊。
- 參與的專案總結:你需要清楚你所做專案的關鍵細節、優化、特點、原理。
- 很多所用第三方庫&中介軟體等的原理,即使你不知道,也要有自己的想法能夠說出如何代替實現,比如單點登入的替代方案。
- 最好,提前準備一個大資料訪問,比如pv擴大1000倍,你的架構或者技術方案應對措施。
- 最後,千萬不要倒在HR面試環節,避重就輕是重點,特別是優點和缺點,如果問到你的規劃是什麼,請記得一定告訴HR你想成為一名優秀的技術專家!
以上就是我的總結,這些都是不斷面試積累來的經驗,分享出來避免更多同學少走彎路,早日進入BAT等一線網際網路公司!
總結
無論是哪家公司,都很重視高併發高可用的技術,重視基礎,重視JVM。面試是一個雙向選擇的過程,不要抱著畏懼的心態去面試,不利於自己的發揮。同時看中的應該不止薪資,還要看你是不是真的喜歡這家公司,是不是能真的得到鍛鍊。其實我寫了這麼多,只是我自己的總結,並不一定適用於所有人,相信經過一些面試,大家都會有這些感觸。
最後,如果有想要我整理的面試資料的,可以戳這裡免費領取,我整理了一些面試真題資料,技術知識點剖析教程,還有和廣大同仁一起交流學習共同進步,還有一些職業經驗的分享。