兩分鐘搞定阿里SQL面試題:億級表合併
阿里面試
2010 年,阿里正當紅。
那年 BAT 的名氣還沒有現今那麼響亮。 就業的時候,很多畢業生還是會選擇 HP, IBM, EMC, SONY, ORACLE,Microsoft 等一類的外企。 這些外企在畢業生眼中代表的是名牌,權威,以及自由,沒錯,自由很重要,Nice 的環境,和諧的團隊,沒有 996 的生存壓力。
但,差距就是在不經意間發生的。
隨著阿里 DBA 團隊轟轟烈烈的多場技術分享演講,越來越多的阿里人在部落格上、論壇裡釋出了自己對技術的理解。 尤其是 Oracle 技術的應用,itpub 的崛起,簡直把 Oracle 推向了神壇。 特別是 Fenng 這支筆桿子,既是 Oracle 高手,還帶有特別出色的影響力,讓每個玩資料庫的人都對 Oracle 產生了特別的好感,為人不知 Oracle, 縱稱 DBA 也枉然。
當帝國大廈建成,也自然成就了一批匠人。
現在來看,後期的業務幾近於維護期,再去阿里搞 Oracle, 時間風口已經不再了。 所以 BAT 未來幾年不再是技術人成長的好地方了,反而那些小立山頭的初創公司,可能還有至少讓你技術騰飛的空間。
當然,如果你是搞 AI, BAT 依然是首選。
2010 年我也帶著一絲敬仰,畢竟玩了 Oracle 也 2 年了,準備去阿里試試。 阿里招新也是挺大場面的。 虹橋展覽館都包了整整 3 層,迎賓就用了 1 層。 筆試很快就透過了,基礎題還是選擇題,只要認真看過 Oracle Concepts 都應該問題不大。 一面 HR,問一些個人意願和對技術的看法,不太張狂的技術人,不會卡在這一關。 終面是個老技術,問得特別細。
印象中,時間過得很慢,大概整個面試過程有 1 個半小時。 面試給的礦泉水都喝得差不多了才停。
拒人千里之外的那道 SQL 題
所有的面試我想都會有兩部分。
第一部分是對理論知識的考察,比如表空間,分割槽,統計資訊,日誌處理,備份與恢復,RAC, OGG 等等。 這些基礎知識,在 Oracle Concepts, Tom 的 《Oracle 體系架構》《Oracle 程式設計藝術》中都會有涉及,即使只看過其中某幾章,吹吹水還是能過得去。 就像《雪山飛狐》中偷練了胡家刀法的那個遊醫,不也稱霸一方了嘛。
第二部分實戰題就真的是考察功底了。 我記得最清楚的是這麼道題,直到現在我作為面試官來面試候選人,也會用這道題,因為只此一題就能考察候選人對 DB 的理解,不至於一個 Update/Insert 就把 DB 搞掛!
題目是這樣的:
有一張以 ID 為主關鍵字的聚集表,表資料量是 2 億。 要將另一張同樣結構的表,表資料量是 6000 萬,合併到第一張表裡。
請你設計一個更新的過程。 第一張表可能含有 第二張表的部分資料,也可能沒有。 沒有的要加入,匹配的要更新。
不出大家所料,當時我的回答跟絕大部分我遇到的面試者一樣,insert/update/merge 就完了唄。 結果統統都是被否定的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31556440/viewspace-2669300/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 5分鐘搞定Promise控制併發Promise
- 快速SQL TUNING——1分鐘搞定超慢SQLSQL
- 10分鐘搞定 Java 併發佇列好嗎?好的Java佇列
- 連結串列面試題(七)---合併兩個有序連結串列面試題
- 兩表連線三:合併連線
- SQL 兩個表組合查詢SQL
- 1分鐘搞定 Nginx 版本的平滑升級與回滾Nginx
- 使用SQL語句將資料庫中的兩個表合併成一張表SQL資料庫
- 【搞定 Java 併發面試】面試最常問的 Java 併發基礎常見面試題總結!Java面試題
- 兩個歷史表的資料合併
- 十分鐘搞定 GradleGradle
- 5 分鐘搞定 Java Comparable 介面Java
- 五分鐘搞定Docker安裝ElasticSearchDockerElasticsearch
- 5分鐘搞定OKR工作法OKR
- Git兩分鐘指南Git
- 5分鐘搞定開機引導介面
- 十分鐘搞定CSS選擇器CSS
- 10分鐘搞定Mysql主從部署配置MySql
- 10億級別訂單的分庫分表方案
- 30分鐘SQL指南SQL
- 劍指offer面試17 合併兩個排序的連結串列面試排序
- 3 分鐘搞定 Vue 2.0 服務端渲染Vue服務端
- 貝聊億級資料庫分庫分表實踐資料庫
- 兩分鐘教會你重灌系統Windows10,簡單到全程自動化搞定Windows
- SQL優化,百萬級2張表關聯,從40分鐘到3秒的歷程SQL優化
- 合併兩個有序陣列陣列
- pandas 兩列資料合併
- 做好面試的準備之—常見面試題(適合初級、中級的面試者)面試題
- SQL面試題 三(單表、多表查詢)SQL面試題
- SQL Server中合併使用者日誌表的方法SQLServer
- QardioArm智慧血壓計:一分鐘搞定!
- 30分鐘帶你搞定Dokcer部署Kafka叢集Kafka
- 搞定字串類面試題-Palindrome字串面試題
- 5分鐘談前端面試前端面試
- 阿里一道Java併發面試題 (詳細分析篇)阿里Java面試題
- 只需一分鐘輕鬆搞定Win7桌面假死問題Win7
- 合併PDF檔案怎樣做?分享兩種PDF合併方法
- [每日一題] 第十八題:合併兩個排序的連結串列每日一題排序