天矽科技 line

天矽部落格最新的網路趨勢資訊

網站設計趨勢

MySQL是什麼?MySQL、SQL與MariaDB基礎介紹|天矽科技網頁設計

部落格:MySQL是什麼?MySQL、SQL與MariaDB基礎介紹|天矽科技網頁設計

 

目錄
MySQL是什麼
SQL數據庫語言
MySQL資料庫
MySQL與MariaDB

 

MySQL自從被甲骨文Oracle收購後,原先的開發團隊以此為核心開發了另一套開源的資料庫MariaDB,希望以此取代MySQL,但兩者各有優劣,企業應依需求進行選購。

 

 MySQL是一種開源(免費)的 數據庫、資料庫管理系統,廣泛應用在中小型的網站中,用來配合如PHP、ASP或ASP.NET等網頁程式語言,儲存大量數據,若網站擁有後端管理程式系統(網站後台),多須配合資料庫功能。

 簡單來說,資料庫是用來放置大量資料與檔案的一個倉庫SQL是跟網站倉庫溝通的管員,而MySQL是用來管理倉庫的系統。如此,我們可以透過MySQL系統SQL倉庫溝通,管理資料庫中的資料。

 

資料庫是做什麼用的

 當我們在網站閱讀資訊時,可以透過列表中的某個項目,點選並進行瀏覽,這些列表中的資訊就是從數據庫中讀取出來顯示的。

 不論是將照片上傳到社群網站、線上購物將產品加入購物車,還是網站管理者將圖片與文字儲存到網站後台,都是利用資料庫的方式處理。像下方網站中的產品展示,使用者可以利用點選列表的方式將細項產品找出來並進行瀏覽,都跟資料庫有關。

網站使用MySQL
▲攝陽企業-產品 (網站使用MySQL)

 

 在數據庫中,一般是使用「」的方式對產品、類別與標籤等數據進行建模,此「表」如電子表格Excel一般,包含了行與列,它可涉及的使用為一對一多對一一對多等關係,將數據轉換成數據訊息,並使用SQL進行處理。

 

 

 在說到MySQL前,我們需要先知道SQL是什麼。

 SQL (Structured Query Language) 是 結構化查詢語言,用於管理資料庫管理系統,它可以幫助我們在龐大的資料中,快速找到想要的資訊。

 SQL的範圍包括資料插入、查詢、更新和刪除,資料庫模式建立和修改,以及資料存取控制,如:

  • 數據定義語言,包含定義數據庫及其對向的語句,如表、圖、觸發器與儲存過程…等。
  • 數據操作語言,包含允許更新和查詢數據的語句。
  • 數據控制語言,允許授予用戶權限,如訪問數據庫中特定數據的權限。


 當我們在操作APP、網頁或觸發器時,資料會被 DBMS資料庫管理系統紀錄,並存放到Database資料庫中,接著透過SQL結構化查詢語言向使用者顯示、提取所需的資料與訊息,如圖。

 SQL的作用在於不必透過IT工程師即可自行提取所需的資料,或是當資料變動時,可自行修改而無須透過IT工程師。
 

參考資料:
國境之男|SQL是什麼? 初學者必須知道的懶人包

 

 

 MySQL 資料庫管理系統,也就是上方圖片的 DBMS(Database Management System) 的一種。

 MySQL的名字由來,是由聯合創始人女兒名字Monty Widenius之簡寫My,加上SQL的組合而成,它原本是一個開源、開放的數據庫管理系統,以瑞典的MySQL AB公司開發;2008年被昇陽微系統(Sun Microsystems)收購,次年(2009) 昇陽微系統公司被甲骨文公司(Oracle)收購,MySQL成為甲骨文公司旗下之產品

 MySQL被甲骨文(Oracle) 收購後,大幅調漲了MySQL商業版的售價,導致許多人對於甲骨文(Oracle) 是否會繼續支援開源版本的MySQL產生疑慮。

 因此MySQL的創始人以MySQL為基礎,分支成立了「MariaDB」瑪莉亞資料庫,目前已有許多一開始使用MySQL開源軟體的企業網站,逐漸轉向MariaDB或其他的資料庫,如維基百科已於2013年將MySQL轉移至MariaDB資料庫。

 這個MariaDB資料庫最主要的目的是想要取代掉MySQL,MariaDB的功能都可相容於MySQL,甚至操作指令也都和MySQL一模一樣,因此有很多主機也都慢慢開始支援MariaDB,如宏遠主機。

資料庫

 

 

 甲骨文公司(Oracle)於2009年收購昇陽微系統公司(Sun Microsystems),讓許多人對於旗下產品MySQL的開源性與未來產生疑慮,但至今Oracle並沒有讓MySQL成為歷史,而是與自家資料庫產品「Oracle database」與之並存。

 雖然如此,甲骨文Oracle並沒有將重心放在這個收購的MySQL產品上,還推出另外需要付費的商業版本,若開源版本的MySQL需要技術支援或License,也同樣需要付出費用才可獲得更新與支援。(MariaDB採用GPL v2並屬於純粹靠贊助的基金會管理;MySQL則提供GPL v2和 Enterprise license)

 因此創始人以Monty與部分MySQL開發團隊,利用MySQL分支,加上社群開發的功能推出了MariaDB瑪莉亞資料庫,利用MySQL為其核心,再使用自己的修補程式加上其他的功能,希望取代現行的MySQL,且MariaDB的API與協定大多可與MySQL相容,也因此受到相當高的呼聲;不僅如此,MariaDB的版本號也依照MySQL的版本進行開發,但是在MySQL5.6以後,對應的版本號就有所改變,如MySQL5.6對應MariaDB10.0。

 

MySQL與MariaDB的差別

 既然MariaDB可相容於MySQL,那兩者有什麼差別?

 其實這兩者最大的差異就在於封閉與開源,MariaDB有著開源社區的協助,新增了許多MySQL沒有的功能,但卻又因為可以支援大多數使用MySQL的轉換器與應用程式等,讓想要將MySQL轉換到MariaDB的企業,無須更改應用程式並可無痛轉移。

 也因為MariaDB是透過開源社區的協助做開發導向,所以任何有價值的開發都可能需要使用補丁的方式加到正式版,除此之外MariaDB的版本發布也比MySQL頻繁,這表示我們需要頻繁的更新MariaDB版本來獲取更高的穩定,但如果萬一發生錯誤,也會比MySQL還要容易修正。

 不僅如此,即便MariaDB可相容大多的MySQL,但不代表可以完全100%的兼容,在MariaDB提供的文檔中,還是有列出不相容的的問題,這也表示雖然可以無痛轉移,卻仍然不是一件容易的事

 所以應該使用甲骨文Oracle的MySQL還是開源版本的MariaDB都有各自的優劣勢,只有比較適合,沒有絕對的好與不好喔!

 

資料參考:
PROGRESS BAR|MariaDB 資料庫是什麼?它跟MySQL有什麼不同?
維基百科|MySQL

 

回上一頁
信箱
客服
Line@