資料庫基礎知識講解

weixin_33858249發表於2017-11-08

99%的網站瓶頸都在後端  最主要的瓶頸在於:資料庫和儲存

儲存前面用快取來減輕壓力

資料庫前面用memcached快取來減輕壓力

資料庫就是存放資料的倉庫

比較流行的資料庫模型有三種:層次式資料庫、網路式資料庫和關係型資料庫

最常用的有關係型資料庫和非關係型資料庫

關係型資料庫是把資料結構歸結為簡單的二元關係(二維表格形式),對資料的操作都建立在一個或多個關係表格上。

1、二維表格形式

2、典型代表:MySQL  oracle

3、用sql語句對資料進行操作與管理

非關係型資料庫誕生原因:動態請求越來越多,對資料庫要求越來越高,傳統的資料庫無法滿足要求,存取速度慢。

非關係型資料庫有哪些種類呢?

(1) 鍵值儲存資料庫(key-value)

典型產品:memcached   redis  memcacheDB  Berkeley DB

(2) 列儲存資料庫(column-oriented)

典型產品:cassandra,HBase

(3) 面向文件資料庫(Document-Oriented)

典型產品:MongoDB  CouchDB

(4) 圖形資料庫(Graph)

典型產品:Neo4J    InfoGrid

關係型資料庫現在的市場佔有率以ORACLE和MYSQL為主:

oracle關聯式資料庫產品的市場佔有率數一數二

適用範圍:傳統大企業、大公司、政府、金融、證券等

版本升級:8i  9i  10g  11g   12c

MySQL資料庫是中小型關係型資料庫管理系統

有點:體積小,速度快,擁有成本低、開放原始碼

適用範圍:網際網路領域、大中小型網站、遊戲公司、電商平臺

MariaDB資料庫:mysql資料庫的一個分支,擔心mysql被收購後存在閉源風險,由此誕生這個資料庫,相對於mysql而言,只是替換了儲存引擎

SQL server資料庫:微軟平臺的資料庫  適用於:部分企業電商(央視購物),使用windows伺服器平臺的企業

ACCESS資料庫: 入門級小型桌面資料庫,效能安全性都很一般,適用於個人管理或小型網站使用。

應用領域:中小型應用系統,小型程式系統asp+access系統,留言板,校友錄等。

memcached是一個開源的、高效能的、具有分散式記憶體物件的快取系統   http://memcached.org

作用:減輕資料庫負載,加速動態的web應用。

優點:它屬於純記憶體的資料庫,所以快。

缺點:重啟資料庫所有資料就會丟失了。

新浪網結合memcached增加Berkeley db的持久化儲存機制和非同步主輔複製機制,使memcached具備了事務回覆能力、持久化資料儲存能力和分散式複製能力,所以Memcachedb非常適合需要超高效能讀寫速度、持久化儲存的應用場景,但最近幾年逐漸被redis等產品替代。

redis的資料都是快取在記憶體中。區別是redis會週期性的把更新的資料寫入磁碟或者把修改操作寫入追加的記錄檔案,並且在此基礎上實現了master-slave同步。

redis特點:

1   支援記憶體快取,此功能相當於memcached

2   支援持久化,這個功能相當於memcachedb,ttserver.

3   資料型別更豐富,比其他key-value庫功能更強

4   支援叢集,分散式

5   支援佇列等特殊功能


MongoDB是一個介於關聯式資料庫和非關聯式資料庫之間的產品,是非關聯式資料庫中功能最豐富,最像關聯式資料庫的,

最大的特點:支援的查詢語言非常強大。

mysql是一種關係型資料庫管理系統,是將資料儲存在不同的表中,再將這些表放入不同的資料庫中,而不是將所有資料統一存放在一個大倉庫中,這樣的設計增加了mysql的讀取速度,靈活性可管理性也得到了很大提高。訪問及管理mysql資料庫的最常用標準化語言為sql結構化查詢語言。

MariaDB是很多業界人士擔憂資料庫的老大有可能將mysql閉源,為了規避閉源風險,由此而產生了MariaDB資料庫

官方地址:https://mariadb.org.

絕大多數使用linux作業系統的大中小型網際網路網站都在使用mysql作為其後端的資料庫儲存,從大型的BAT網站,到電商平臺,分類入口網站等無一例外都使用mysql資料庫

優勢和特點:

1、效能卓越,服務穩定,很少出現異常當機

2、開放原始碼且無版權制約,自主性及使用成本低

3、歷史悠久,社群及使用者非常活躍,遇到問題,可以尋求幫助。

4、軟體體積小,安裝使用簡單,易於維護,安裝及維護成本低。

5、品牌口碑效應,使得企業無需考慮就直接用之,LAMP,LEMP流行架構

6、支援多種作業系統,提供多種API介面,支援多種開發語言,特別對流行的PHP語言有很好的支援。





     本文轉自陳繼鬆 51CTO部落格,原文連結:http://blog.51cto.com/chenjisong/1726247,如需轉載請自行聯絡原作者

相關文章