數據庫的核心

計算機其實就是存儲/IO/CPU三大件; 而計算說穿了就是兩個東西:數據與算法(狀態與轉移函數)html

 

實際生產中,數據表就是數據結構,索引與查詢就是算法。而應用代碼每每扮演的是膠水的角色,處理IO與業務邏輯,其餘大部分工做都是在數據系統之間搬運數據算法

 

抽象是應對複雜度的最強武器。操做系統提供了對存儲的基本抽象:內存尋址空間與磁盤邏輯塊號。文件系統在此基礎上提供了文件名到地址空間的KV存儲抽象。而數據庫則在其基礎上提供了對應用通用存儲需求的高級抽象數據庫

 

「數據庫」能夠簡單地只是內存中的哈希表/磁盤上的日誌,也能夠複雜到由多種數據系統集成而來。關係型數據庫只是數據系統的冰山一角(或者說冰山之巔),實際上存在着各類各樣的數據系統組件:緩存

  • 數據庫:存儲數據,以便本身或其餘應用程序以後能再次找到(PostgreSQL,MySQL,Oracle)
  • 緩存:記住開銷昂貴操做的結果,加快讀取速度(Redis,Memcached)
  • 搜索索引:容許用戶按關鍵字搜索數據,或以各類方式對數據進行過濾(ElasticSearch)
  • 流處理:向其餘進程發送消息,進行異步處理(Kafka,Flink,Storm)
  • 批處理:按期處理累積的大批量數據(Hadoop)

 架構師最重要的能力之一,就是了解這些組件的性能特色與應用場景,可以靈活地權衡取捨、集成拼接這些數據系統。數據結構

 

一、存儲管理;二、事務;三、查詢語言;四、效率與性能;架構

 

數據庫是一個博大精深的領域,存儲I/O計算無所不包。其主要原理也能夠粗略分爲幾個部分:數據模型設計原理(應用)、存儲引擎原理(基礎)、索引與查詢優化器的原理(性能)、事務與併發控制的原理(正確性)、故障恢復與複製系統的原理(可靠性)。 全部的原理都有其存在乎義:爲了解決實際問題。併發

 

 

https://www.cnblogs.com/feng9exe/p/10690439.html異步

相關文章
相關標籤/搜索