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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...