初步瞭解資料庫
資料庫簡介
- 資料庫,簡而言之就是電子化的檔案櫃,儲存電子檔案的地方,使用者可以對檔案中的資料進行增刪改查等操作
- 所謂“資料庫”系以一定方式儲存在一起、能予多個使用者共享、具有儘可能小的冗餘度、與應用程式彼此獨立的資料集合。
- https://db-engines.com/en/ranking(資料庫排行榜)
資料庫管理
非關係型資料庫(No SQL:Not only SQL)
- 非關係型資料庫的特點
- 不是否定關係型資料庫,而是作為補充,現在也有部分替代的趨勢
- 關注高效能,高併發,靈活性,忽略和上述無關的功能。
- 現在也在提升安全性和使用功能。
- 典型產品:Redis(持久化快取,兩個半天)、MongoDB(最接近關係型資料 的NoSQL)、Memcached。
- 管理不適用SQL管理,而是用一些特殊的 API 或 資料介面。
- NoSQL的分類、特點、典型產品
- 鍵值(KV)儲存:Memcached、Redis
- 列儲存(column-oriented):HBASE(新浪,360)、Cassandra(200臺伺服器叢集)
- 文件資料庫(document-oriented):MongoDB(最接近關係型資料庫的NoSQL)
- 圖形儲存(Graph):Neo4j
關係型資料庫
- 特點
- 二維表
- 典型產品 Oracle傳統企業,MySQL是網際網路企業
- 資料存取是通過SQL(結構化查詢語句)
- 最大特點,資料安全性方面強(ACID)
資料庫相關產品
Oracle
- Oracle資料庫版本介紹:7--8i--9i--10g—11g--12c
- 市場份額第一,趨勢遞減
- 市場空間,傳統企業
- 傳統企業也在網際網路化
MYSQL
- MySQL資料庫版本介紹:5.0--5.1--5.5--5.6--5.7--8.0
- 市場應用於中、大型網際網路公司
- 市場空間:網際網路領域第一
- 同源產品:MariaDB、perconaDB
- 發展趨勢明顯
其他公司產品
SQL Server(微軟)
- 微軟和sysbase合作開發的產品,後來自己開發,windows平臺;3,4線小公司,傳統行業在用。
DB2(IBM)
- 市場佔有量小,目前只有:國有銀行(人行、中國銀行、工商銀行等)、中國移動應用。
- 注:廣泛應用在大型網際網路公司的資料庫:PostgreSQL、MongoDB、Redis
MySQL
發展史
- 1979年,報表工具Unireg出現。
- 1985 年,以瑞典David Axmark 為首,成立了一家公司(AB前身),IASM引擎出現。
- 1990年,提供SQL支援。
- 1999-2000年,MySQL AB公司成立,並公佈原始碼,開源化。
- 2000年4月BDB引擎出現,支援事務。
- 2008年1月16日,Sun(太陽微系統)正式收購MySQL。
- 2009年4月20日,甲骨文公司宣佈以每股9.50美元,74億美元的總額收購Sun電腦公司,MySQL 轉入Oracle 門下。
- 2013年6月18日,甲骨文公司修改MySQL授權協議,移除了GPL。但隨後有訊息稱這是一個bug。
特點
- 開源
- 社群版免費
- 簡單
- 方便可靠
- 穩定
- 安全
- 社群活躍
mysql產品線的介紹
-
3.26--5.2版本
正宗後代;Centos5、6中預設有5.1版本;Centos7中預設是MariaDB
-
5.4--5.7 ,8.0版本
借鑑社群好的貢獻,進一步開發的版本;主流版本:5.5 5.6 5.7 -
MySQL Cluster 6.0 版本&更高
類似於Oracle RAC,硬體要求高;一般各大網站沒有人用。
-
mysql產品線(派生產品)
派生版本有Drizzle、MariaDB、Percona Server及OurDelta等。
附錄一:
企業生產場景選擇MySQL資料庫建議:
1)穩定版:選擇開源的社群版的穩定版GA版本
2)產品線:可以選擇5.1或5.5 網際網路公司主流5.5,其次是5.1和5.6
3)選擇MySQL資料庫GA版釋出後6個月以上的GA版本。
4)要選擇前後幾個月沒有大的BUG修復的版本,而不是大量修復BUG的集中版本
5)最好向後較長時間沒有更新發布的版本
6)要考慮開發人員開發程式使用的版本是否相容你選的版本
7)作為內部開發人員開發測試資料庫環境,跑大概3-6個月的事件
8)優先企業非核心業務採用新版本的資料庫GA版本軟體
9)向DBA高手請教,或者在及技術氛圍好的群裡和大家一起交流,使用真正的高手們用過的好用的GA版本產品
10)若是沒有重要的功能BUG或效能瓶頸,則可以開始考慮作為任何任務資料服務的後端資料庫軟體
附錄二:
什麼是Oracle RAC?
RAC是real application clusters的縮寫,譯為“實時應用叢集”, 是Oracle新版資料庫中採用的一項新技術,是高可用性的一種,也是Oracle資料庫支援網格計算環境的核心技術。
Oracle RAC主要支援Oracle9i、10g、11g,12C版本,可以支援24 x 7 有效的資料庫應用系統,在低成本伺服器上構建高可用性資料庫系統,並且自由部署應用,無需修改程式碼。
在Oracle RAC環境下,Oracle整合提供了叢集軟體和儲存管理軟體,為使用者降低了應用成本。當應用規模需要擴充時,使用者可以按需擴充套件系統,以保證系統的效能。