mysql面試經典問題 如何設計乙個關係型資料庫

2021-10-12 19:10:24 字數 1043 閱讀 6440

模組劃分能力

底層需要乙個儲存模組(檔案系統)

我們還需要組織並使用這些資料,因此需要有程式例項。用邏輯結構來對映出物理結構來,並且在程式中提供獲取以及管理資料的方式,以及必要的問題追蹤機制。

接下來來細分一下程式的模組。

首先,需要對資料的格式以及檔案的風格進行統一的管理,即把物理資料通過邏輯的形式給組織並表示出來。於是便涉及到了程式的儲存管理模組。

我們應該如何優化儲存效能?處理資料不能在磁碟上做,肯定是讓程式載入到程式空間所在的記憶體中去做,磁碟io速率往往是程式執行速度的主要瓶頸。

因為你一次查詢一行與一次查詢多行,對磁碟io的使用差不多,所以資料庫並不是使用行 作為其儲存單位,而是使用塊 或者 頁 作為其邏輯儲存單位。每個塊或者頁儲存多行資料,這樣在讀取資料的時候,就可以把多個塊一起載入到記憶體中

為了更快、更好的優化我們的程式,要引入快取機制。下次直接從記憶體中返回,而不用發生i/o操作。

還需要能提供給外部指令,來操作我們的資料庫,即可讀的sql語言,那麼我們需要乙個sql解析模組,來將我們的sql編譯、解析,轉變為機器可識別的指令。這個時候如果想提高我們sql執行的效率,怎麼辦?還是將sql快取到我們的快取中,把sql編譯好,方便下次過來直接進行解析。

可以看到,我們在設計程式的時候,要先考慮功能,然後再進行效能優化。

要注意:我們的快取不宜過大,而且演算法裡面要有淘汰機制。

做的sql操作,需要記錄下來,方便我們做資料庫的主從同步,或者災難恢復。因此需要日誌管理辦法,如binlog

對操作進行許可權劃分

設計系統的時候除了考慮正常的情況,也要考慮異常的情況,那就是容災機制

對效能提公升,最重要的兩個模組

優化資料查詢效率

資料庫支援併發操作

面試經典問題

面試經典問題之請你自我介紹一下 你有什麼業餘愛好 談談你的缺點 說說你的優勢 你為什麼選擇我們公司 談一談你的一次失敗經歷 面試時很可能遇到的這些問題該如何作答?博主為你一一解答。思路1 這是面試的必考題目。2 介紹內容要與個人簡歷相一致。3 表述方式上盡量口語化。4 要切中要害,不談無關 無用的內...

mysql 經典問題 mysql經典排名問題

問題 編寫乙個 sql 查詢來實現評分排名。如果兩個分數相同,則兩個分數排名 rank 相同。評分表ratings 方法一 不運用dense rank 運用子查詢 解決這一問題可以分為兩個步驟 步驟一 降序排列分數 select a.rating as rating from ratings a o...

面試經典問題 TCP連線經典問題

1.為什麼建立連線是三次握手,而關閉連線卻是四次握手呢?因為服務端的listen狀態下的socket當收到syn報文的連線請求後,它可以把ack和syn ack起應答作用,syn同步作用 放在乙個報文中傳送。但關閉連線時,當收到對方的fin報文時,僅僅表示對方想要斷開連線,但未必你想,因為不會馬上關...