標籤:
最近一直都在搞新員工的培訓材料,MySQL的培訓PPT我居然寫了100多頁,我都佩服我自己的毅力了。不如現在把這些總結一下,慢慢寫到部落格裡,供入門者參考。
一 關係型資料庫
關係型資料庫的理論提出於上世紀七十年代,由IBM的研究員E.F.Codd的論文提出。
關係型資料庫的理論基礎可以參考王珊和薩師煊編著的經典教材《資料庫系統概論》。我就不在這裡寫了,這些理論性太強,作為快速入門的教程也不應該說這些,但是這些理論就像是武功裡的易筋經一樣,練了以後什麼功夫都學得快。
二 資料庫的基本概念
以前玩兒Oracle的時候加了一個群,發現很多人寫了好久的PL/SQL,但是還是搞不明白什麼叫資料庫,什麼叫做執行個體。我覺得,雖然不知道這些還是可以寫PL/SQL,但是如果想成為一個DBA,基本概念還是一定要清楚的,就像是練功還是要先紮馬步一樣,下盤不穩總是容易倒下嘛。
資料庫(database):指的是檔案系統上的一組檔案,在innoDB中表現為尾碼為idb的檔案。
執行個體(instance):指的是作業系統上的一組進程/線程和記憶體的集合。如果在MySQL伺服器上執行ps -ef | grep mysql,就能看見MySQL的進程了。
簡單地說,資料庫指的是檔案,執行個體指的是進程/線程和記憶體。
平時我們說的資料庫,很多的時候指的是關係型資料庫管理系統(RDBMS),這些概念在嚴謹的文檔中是要嚴格區分的,但是在平時的交流中,基本上大家約定俗成的說法是沒有問題的。
至於資料庫的其他一些概念:表,行,列,視圖和索引等等,這些以後慢慢講吧。
三 MySQL資料庫概述
MySQL最開始是創始人Monty覺得別人的資料庫不好使,自己寫出來服務自己的(Linux是當年Linus覺得Minix只能用在教學,為了更好地學作業系統寫出來的),不得不說這些人牛。
後來,他成立了MySQL AB公司,開發用於商用的MySQL。之後公司被大名鼎鼎的Sun收購,在Sun時期,MySQL推出了5.1版本,這個版本我用了好久,堪稱難用,尤其是和後來的5.5比起來,簡直是太難用了。
2009年,MySQL隨著Sun一起被Oracle收購,隨後Oracle推出了5.5版本,我個人覺得這個版本真的是裡程碑版本了,當年我們從5.1升級到5.5的時候,效能好的真的是讓我都快流淚了,尤其是比5.1完善的多的分區表,簡直是當年我做資料倉儲的福音。
後來,我們迎來了5.6和5.7版本, 這些版本大幅提高了並發能力和複製的效能,尤其是5.7的並行複製功能,理論上解決了一直存在的複寫延遲問題。我確實感覺到,Oracle公司在資料庫領域的領先確實不是其他公司可以比擬的。
當然,開源軟體,尤其是好的開源軟體總是有分支的。MySQL最大的分支就是Percona Server和MariaDB了。Percona Server專註於效能的提升,其推出的XtraDB引擎就是innoDB的加強版;MariaDB則會引進更多的新特性,尤其是MariaDB率先推出的並行複製功能,著實讓官方MySQL使用者眼紅。
--------------------------------------------------------------------------------
今天寫了一些基本概念和MySQL的曆史,這些我們也是需要理解和知道的,對一個DBA來說這些知識只有好處沒有壞處。今天躺著寫的,沒有滑鼠不是很方便,所以寫的比較簡略。
MySQL入門(一)