[譯]數據庫是如何工做(三)全文概述

咱們剛剛看到了數據庫中的基礎組件。咱們如今須要退一步來縱觀全局。 數據庫是能夠輕鬆訪問和修改的信息集合。但一堆簡單的文件能夠作一樣的事情。事實上,像 SQLite 那些最簡單的數據庫也不過是一堆文件罷了。但 SQLite 是一組精心設計的文件,由於它容許您:數據庫

  • 使用事務來保證數據的安全和一致性
  • 當你要處理數百萬條數據,也能快速處理

通常來講,數據庫能夠看做以下圖緩存

在編寫本部分以前,我已經閱讀了大量的書籍/論文,而每份資料都有本身對數據庫的表達方式。因此,不要過度關注我如何組織這個數據庫或我如何命名流程,由於我作了一些選擇以適應本文的計劃。重要的是那些不一樣的組件 ; 整體思路是將數據庫劃分爲多個組件,而組件是能夠互相聯繫的。安全

核心組件網絡

  • 進程管理器:許多數據庫有一個須要管理進程池/線程池。此外,爲了爭分奪納秒,不少現代數據庫會使用本身的線程而不是操做系統線程。
  • 網絡管理器:網絡 I/O是一個大問題,特別是對於分佈式數據庫。這就是爲何有些數據庫有本身的網絡管理器
  • 文件系統管理器:磁盤 I/O 是數據庫的第一個瓶頸。有一個可以完美掌控操做系統文件系統甚至替換它的管理器很是重要。
  • 內存管理器:爲了不磁盤 I/O 的耗損,須要大量的內存。若是你要處理大量內存,就須要一個高效的內存管理器。尤爲是當你有許多查詢要同時使用內存時。
  • 安全管理:用於管理用戶的身份驗證和受權
  • 客戶端管理: 用於管理客戶端鏈接

工具 :分佈式

  • 備份管理器:用於保存和恢復數據庫
  • 恢復管理器:在崩潰後要重啓的數據庫保持一致的狀態
  • 監測管理器:用於記錄數據庫的行爲並提供監視數據庫的工具
  • 管理員管理器: 用於存儲元(meta)數據(如表的名稱和結構)並提供工具去管理數據庫,模式,表空間......

查詢管理器工具

  • 查詢解析器(parser):檢查查詢語句是否有效
  • 查詢重寫器(rewriter):預先優化查詢語句
  • 查詢優化器(optimizer):優化查詢
  • 查詢執行器(executor):編譯並執行查詢

數據管理器優化

  • 事務管理器:處理事務
  • 高速緩存管理器:在使用數據以前將數據放入內存,並在將數據寫入磁盤以前將先將數據放入到內存
  • 數據訪問管理器:訪問磁盤上的數據

在本文的其他部分,我將重點介紹數據庫如何經過如下流程管理SQL查詢:操作系統

  • 客戶端管理器
  • 查詢管理器
  • 數據管理器(我還將在此部分中包含恢復管理器)
相關文章
相關標籤/搜索