MySQL入門(一)

来源:http://www.cnblogs.com/wingsless/archive/2016/02/24/5215076.html
-Advertisement-
Play Games

最近一直都在搞新員工的培訓材料,MySQL的培訓PPT我居然寫了100多頁,我都佩服我自己的毅力了。不如現在把這些總結一下,慢慢寫到博客里,供入門者參考。 一 關係型資料庫 關係型資料庫的理論提出於上世紀七十年代,由IBM的研究員E.F.Codd的論文提出。 關係型資料庫的理論基礎可以參考王珊和薩師


    最近一直都在搞新員工的培訓材料,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用戶眼紅。

   四 Linux還是Windows?

    我現在就是用Windows來寫這篇博文的,但是我還是覺得Linux在伺服器領域遠遠好於Windows。

    其實我最近和很多網友交流過,發現很多人學習MySQL的時候還是首先會選擇Windows,在我推薦使用Linux時很多人都會抱怨Linux的GUI太差了,安裝軟體也非常複雜,實在是不想用。實際上從入門學習的角度上說,用Windows也是可以的,不過很多DBA每天不止是寫寫SQL,還要搞很多操作系統和網路上的事情,所以還是直接用Linux比較好。我最開始學習Linux的時候也天天罵為什麼不能把操作系統做的好用一點,不過後來熟悉了覺得挺好用的,有時候寫個Shell還是挺高效的。

    學習Linux可以從Ubuntu入手,這個版本的GUI做的很不錯,現在很多公司的系統採用了RHEL或者CentOS,學習的時候也可以看看,和Ubuntu大同小異。推薦一本書:《鳥哥的Linux私房菜》,只看第一卷就可以了,基本上學會了就可以把Linux作為日常工作系統了。

    我以前看到過一些資料,說是MySQL在Linux上的性能更好,Windows的版本也是後來某個版本才開始優化了,不知道這個說法是否成立,我姑且信之。不過有個點可以作為參考,就是Percona公司的Percona Server就根本沒有Windows版本。

    所以最好還是從開始學習就用Linux吧,畢竟一個DBA得雜學操作系統和網路。

    --------------------------------------------------------------------------------

    今天寫了一些基本概念和MySQL的歷史,這些我們也是需要理解和知道的,對一個DBA來說這些知識只有好處沒有壞處。今天躺著寫的,沒有滑鼠不是很方便,所以寫的比較簡略。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...