數據庫知識入門
阿新 • • 發佈:2017-06-20
ica and 時間 emca access ted 列存儲 鍵值 效應
最近總在胡思亂想,不知何去何從,TM20來歲的大好青年突然就莫名有了中年危機感了。也是沒誰了,由於行業決定,硬盤裏面的東西亂七八糟挺多的...沒錯,各種學習筆記,突然發現以前的自己是這麽的愛學習,看看還挺有用的,於是就重走長征路,溫故而知新,做個遷移吧。
目前我們常用的數據庫主要就是兩類:
關系型數據庫和非關系型數據庫
關系型數據庫:
- 把復雜的數據結構歸結為簡單的二元關系(二維表格形式)
- 結構化查詢語言sql語句對數據進行存取
- 典型產品:MySQL和oracle
非關系型數據庫:
- 就是為了解決web2.0時代高並發,靈活性問題。
- Google的BigTable
- Amazon的Dynamo成功的商用NoSQL
- Facebook的Cassandra
- Apache的HBase
- 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的優勢:
- 大中小互聯網企業都在用,如:BAT
- MySQL性能卓越,服務穩定,很少出現異常宕機
- MySQL開發源代碼且無版權制約,自主性及使用成本低
- MySQL歷史悠久,社區及用戶非常活躍,遇到問題,可以尋求幫助
- MySQL軟件體積小,安裝使用簡單,易於維護,安裝及維護成本低
- MySQL品牌口碑效應好,LAMP,LNMP流行架構。
- MySQL支持多種操作系統,提供多種API接口,支持多種開發語言,特別對流行的PHP語言有很好的支持,時下比較熱門的python,MySQL也提供了api,MySQL-python
如何選擇合適的MySQL版本:
- 穩定版:選擇社區版的穩定版GA版
- 選擇MySQL數據庫GA版本發布後6個月以上的GA版本
- 要選擇前後幾個月沒有大的BUG修復的版本
- 最好向後較長時間沒有更新發布的版本
- 要考慮開發人員開發程序使用的版本是否兼容你選的版本
- 作為內部開發測試數據庫環境,跑大概3-6個月的時間
- 有限企業非核心業務采用新版本的數據庫GA版本
- 向DBA高手請教,看看大家都有用哪個GA版本產品
- 經過上述工序後,若沒有重要bug或性能瓶頸就可以上業務了。
數據庫知識入門