1. 程式人生 > >數據庫知識入門

數據庫知識入門

ica and 時間 emca access ted 列存儲 鍵值 效應

  最近總在胡思亂想,不知何去何從,TM20來歲的大好青年突然就莫名有了中年危機感了。也是沒誰了,由於行業決定,硬盤裏面的東西亂七八糟挺多的...沒錯,各種學習筆記,突然發現以前的自己是這麽的愛學習,看看還挺有用的,於是就重走長征路,溫故而知新,做個遷移吧。

目前我們常用的數據庫主要就是兩類:

關系型數據庫和非關系型數據庫

關系型數據庫:

  1. 把復雜的數據結構歸結為簡單的二元關系(二維表格形式)
  2. 結構化查詢語言sql語句對數據進行存取
  3. 典型產品:MySQL和oracle

非關系型數據庫:

  1. 就是為了解決web2.0時代高並發,靈活性問題。
  2. Google的BigTable
  3. Amazon的Dynamo成功的商用NoSQL
  4. Facebook的Cassandra
  5. Apache的HBase
  6. Redis,mongodb也想當受到追捧(我們公司用的就是mongo,具體細節不展開)

  按照設計種類大致可分為:

  1)鍵值(Key-Value)存儲數據庫
    Key/value模型對於IT系統來說的優勢在於簡單、易部署、高並發。
    典型產品:Memcached,Redis,MemcacheDB,Berkeley DB
  2)列存儲(Column-oriented)數據庫
    典型產品:Cassandra,HBase
  3)面向文檔(Document-Oriented)的數據庫
    典型產品:MongoDB,CouchDB
  4)面向圖形(Graph)的數據庫
    典型產品:Neo4J,InfoGird

各個種類數據庫的適用場景

Orical:傳統大企業,大公司,政府,金融,證券等,跑在IBM的小型機的(不過大家也都在去IOE)
MySQL:大中小型企業,互聯網公司,遊戲公司,電商平臺等
MariaDB:MySQL的替代品
SQL Server:微軟的,Windows平臺
Access:入門級桌面小型數據庫

非關系型數據庫:
Mencached(Key-Value)數據庫
斷電數據丟失,解決:Memcachedb新浪開發的

redis(key-value)
redis的數據都是緩存在內存中。區別是redis會周期性的把更新的數據寫入磁盤
或把修改操作寫入追加到記錄文件。

Mongodb介於關系和非關系之間的數據庫

我們的主角是MySQL

MySQL的優勢:

  1. 大中小互聯網企業都在用,如:BAT
  2. MySQL性能卓越,服務穩定,很少出現異常宕機
  3. MySQL開發源代碼且無版權制約,自主性及使用成本低
  4. MySQL歷史悠久,社區及用戶非常活躍,遇到問題,可以尋求幫助
  5. MySQL軟件體積小,安裝使用簡單,易於維護,安裝及維護成本低
  6. MySQL品牌口碑效應好,LAMP,LNMP流行架構。
  7. MySQL支持多種操作系統,提供多種API接口,支持多種開發語言,特別對流行的PHP語言有很好的支持,時下比較熱門的python,MySQL也提供了api,MySQL-python

如何選擇合適的MySQL版本:

  1. 穩定版:選擇社區版的穩定版GA版
  2. 選擇MySQL數據庫GA版本發布後6個月以上的GA版本
  3. 要選擇前後幾個月沒有大的BUG修復的版本
  4. 最好向後較長時間沒有更新發布的版本
  5. 要考慮開發人員開發程序使用的版本是否兼容你選的版本
  6. 作為內部開發測試數據庫環境,跑大概3-6個月的時間
  7. 有限企業非核心業務采用新版本的數據庫GA版本
  8. 向DBA高手請教,看看大家都有用哪個GA版本產品
  9. 經過上述工序後,若沒有重要bug或性能瓶頸就可以上業務了。

數據庫知識入門