0305面試問題

2021-10-21 03:36:16 字數 1884 閱讀 5577

上午面愛奇藝

最後評價是對**的理解比較淺,應該是掛了。

上午對問題follow up之後,我就答不上來了。比如git的快取區實現,我答得應該是不對的,具體的是哪個原理,需要了解一下。

下午面moka

面試評價還好,但是需要綜合考慮,很有可能會掛。

比如裝箱開箱(例如integer和int之間),其意義,具體**可否正常編譯檢查,結果判斷;==和equals的區別;mysql2個引擎的特點;mysql為什麼使用b+樹;資料讀取很慢的時候,用什麼辦法(我答了資料分片,分解查詢,面試官告訴我考慮用索引);http的協議具體內容,請求報文和響應報文結構。

轉碼好難,我好菜。

1、 b+樹的磁碟讀寫代價更低:b+樹的內部節點並沒有指向關鍵字具體資訊的指標,因此其內部節點相對b樹更小,如果把所有同一內部節點的關鍵字存放在同一盤塊中,那麼盤塊所能容納的關鍵字數量也越多,一次性讀入記憶體的需要查詢的關鍵字也就越多,相對io讀寫次數就降低了。

2、b+樹的查詢效率更加穩定:由於非終結點並不是最終指向檔案內容的結點,而只是葉子結點中關鍵字的索引。所以任何關鍵字的查詢必須走一條從根結點到葉子結點的路。所有關鍵字查詢的路徑長度相同,導致每乙個資料的查詢效率相當。

3、由於b+樹的資料都儲存在葉子結點中,分支結點均為索引,方便掃庫,只需要掃一遍葉子結點即可,但是b樹因為其分支結點同樣儲存著資料,我們要找到具體的資料,需要進行一次中序遍歷按序來掃,所以b+樹更加適合在區間查詢的情況,所以通常b+樹用於資料庫索引。

聚簇索引:將資料儲存與索引放到了一塊,找到索引也就找到了資料

非聚簇索引:將資料儲存於索引分開結構,索引結構的葉子節點指向了資料的對應行,myisam通過key_buffer把索引先快取到記憶體中,當需要訪問資料時(通過索引訪問資料),在記憶體中直接搜尋索引,然後通過索引找到磁碟相應資料,這也就是為什麼索引不在key buffer命中時,速度慢的原因

聚簇索引的優勢

看上去聚簇索引的效率明顯要低於非聚簇索引,因為每次使用輔助索引檢索都要經過兩次b+樹查詢,這不是多此一舉嗎?聚簇索引的優勢在哪?

由於行資料和葉子節點儲存在一起,同一頁中會有多條行資料,訪問同一資料頁不同行記錄時,已經把頁載入到了buffer中,再次訪問的時候,會在記憶體中完成訪問,不必訪問磁碟。這樣主鍵和行資料是一起被載入記憶體的,找到葉子節點就可以立刻將行資料返回了,如果按照主鍵id來組織資料,獲得資料更快。

輔助索引使用主鍵作為"指標"而不是使用位址值作為指標的好處是,減少了當出現行移動或者資料頁**時輔助索引的維護工作,使用主鍵值當作指標會讓輔助索引占用更多的空間,換來的好處是innodb在移動行時無須更新輔助索引中的這個"指標"。也就是說行的位置(實現中通過16k的page來定位)會隨著資料庫裡資料的修改而發生變化(前面的b+樹節點**以及page的**),使用聚簇索引就可以保證不管這個主鍵b+樹的節點如何變化,輔助索引樹都不受影響。

聚簇索引適合用在排序的場合,非聚簇索引不適合

取出一定範圍資料的時候,使用用聚簇索引

二級索引需要兩次索引查詢,而不是一次才能取到資料,因為儲存引擎第一次需要通過二級索引找到索引的葉子節點,從而找到資料的主鍵,然後在聚簇索引中用主鍵再次查詢索引,再找到資料

可以把相關資料儲存在一起。例如實現電子郵箱時,可以根據使用者 id 來聚集資料,這樣只需要從磁碟讀取少數的資料頁就能獲取某個使用者的全部郵件。如果沒有使用聚簇索引,則每封郵件都可能導致一次磁碟 i/o。

聚簇索引的劣勢

維護索引很昂貴,特別是插入新行或者主鍵被更新導至要分頁(page split)的時候。建議在大量插入新行後,選在負載較低的時間段,通過optimize table優化表,因為必須被移動的行資料可能造成碎片。使用獨享表空間可以弱化碎片

表因為使用uuid(隨機id)作為主鍵,使資料儲存稀疏,這就會出現聚簇索引有可能有比全表掃面更慢,

It面試問題

一般第一輪技術面都是來考察你最基本的技術功底。招聘季節,隨處可見抱著厚厚的 程式設計師面試寶典 啃的學生。偶爾也能看見 程式設計之美 劍指offer 的神書。這些經驗書確實有用。但是要想全面的掌握筆試面試的基礎考點,還是需要完整的複習。其實,筆試面試對計算機基礎的考察是萬變不離其宗的。其考點無非分為...

面試 Hbase面試問題

1.hbase怎麼預分割槽?2.hbase怎麼給web前台提供介面來訪問?3.htable api有沒有執行緒安全問題,在程式中是單例還是多例?4.hbase有沒有併發問題?5.metaq訊息佇列,zookeeper集群,storm集群,就可以完成對 推薦系統功能嗎?還有沒有其他的中介軟體?6.st...

面試問題 十大面試問題

在面試中,你會被問到的問題將是 對於許多不同型別的工作,一般問題可以是相同的。以下是一些可以被問到的常見問題。1.你的技能 您的面試官想知道您是否具備完成工作的技能,因此他們可能會問 了解自己的優勢,並提及與您正在接受面試的工作相關的優勢。盡可能提供您之前的工作或生活經歷的例子。雇主尋求的典型優勢是...