青蛙學Linux—MySQL

一、MySQL是什麼?

MySQL是一個關係型數據庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下產品。MySQL 是最流行的關係型數據庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關係數據庫管理系統) 應用軟件。mysql

MySQL爲何會如此流行呢?由於它有如下特色:sql

  • 簡單易用:MySQL的使用很是簡單,稍微有IT技術背景的人員均可以參照文檔安裝和運行MySQL
  • 開源:開源意味着免費,這也是一開始不少人選擇MySQL的緣由
  • 支持多種存儲引擎:MySQL有多種存儲引擎,每種存儲引擎有各自的優缺點,能夠擇優選擇使用:MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE
  • 支持高可用架構:MySQL自身提供的replication(主從複製)功能能夠實現MySQL數據的實時備份,結合其餘高可用軟件能夠很方便的實現高可用

MySQL官網:https://www.mysql.com數據庫

二、基於MySQL的發行版

目前流行的MySQL分支發行版有Percona Server和MariaDB。緩存

Percona Server

Percona Server是由領先的MySQL諮詢公司Percona發佈的一款基於MySQL的關係型數據庫,是一款獨立的數據庫產品,與MySQL徹底兼容。在衆多MySQL分支發行版中是最爲接近官方MySQL Enterprise的版本。安全

Percona Server使用自行開發的XtraDB引擎;Percona Server在可管理性和穩定性上較MySQL都有必定的提高;Percona Server仍是開源和免費的軟件,而官方的MySQL Enterprise則是收費版本。服務器

Percona公司還提供了其餘諸如高可用、數據庫管理和備份等解決方案,官網:https://www.percona.com架構

MariaDB

MariaDB由MySQL的創始人Michael Widenius主導開發。先前其曾將本身建立的公司MySQL AB出售給了SUN,隨後SUN被Oracle收購,Michael Widenius不滿於Oracle有將MySQL閉源的潛在風險因此開發了MariaDB。 併發

MariaDB當前主要由開源社區進行維護,採用GPL受權許可;MariaDB的目的是徹底兼容MySQL,包括API和命令行,使之能輕鬆成爲MySQL的代替品;在存儲引擎方面,使用XtraDB來代替MySQL的InnoDB。 ide

MariaDB官網:https://mariadb.orgspa

三、MySQL的存儲引擎

MySQL經常使用的存儲引擎有MyISAM和InnoDB。

在MySQL 5.5以前的版本,默認使用的是MyISAM引擎,而從MySQL 5.5開始,已將默認存儲引擎從MyISAM改成InnoDB。

兩種存儲引擎的大體區別在於:

  • InnoDB支持事務,而MyISAM不支持。事務是一種高級的數據處理方式,能夠在一些增刪改查出錯時進行回滾操做以還原數據
  • MyISAM查詢數據相對較快,適合大量的select操做,能夠全文索引;InnoDB適合頻繁修改以及安全性要求較高的應用
  • InnoDB支持外鍵,支持行級鎖,MyISAM不支持
  • MyISAM索引和數據是分開的,且其索引是壓縮的,緩存在內存的是索引,而不是數據;InnoDB緩存在內存的是數據,相對來講,服務器內存越大,InnoDB發揮的優點越大
  • InnoDB可支持大併發請求,適合大量insert、update操做

3.一、InnoDB存儲結構

使用InnoDB存儲引擎,MySQL會將以.frm結尾的表結構文件存放於數據存儲目錄下以數據庫命名的目錄中;而數據庫中的數據、索引和元數據都會被存儲在數據存儲目錄下的ibdata1文件中;在MySQL的數據存儲目錄下還存在名爲ib_logfile0ib_logfile1的文件(文件大小能夠設置,可設置鏡像),這兩個文件爲事務日誌(redo log),用於記錄數據庫操做的變化,用於事務的回滾操做,這兩個文件的寫入規則爲:先寫ib_logfile0,寫滿後寫ib_logfile1,在ib_logfile1寫滿後再返回寫ib_logfile0。

3.二、MyISAM存儲結構

MyISAM引擎會將數據所有放置在MySQL數據存儲目錄中以數據庫命名的目錄下,名稱以表名錶示,經過後綴區分不一樣的文件:.frm爲表結構文件;.myd爲數據存儲文件;.myi爲索引文件

相關文章
相關標籤/搜索