mysql server-儲存引擎

來源:互聯網
上載者:User

標籤:memory   server   資料庫   mysql   線上   

                       mysql server系統架構

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M02/98/9C/wKiom1k-nWaxKBCNAAIcOwbR-vs445.png" title="圖片1.png" alt="wKiom1k-nWaxKBCNAAIcOwbR-vs445.png" /> 

邏輯模組組成:

mysql邏輯模組可以分為兩層架構,第一層是sql layer主要包括許可權判斷、sql解析、執行計畫最佳化、query cache的處理等;第二層是儲存引擎層storageengine layer,是底層資料存取操作實現部分,由多種儲存引擎共同組成。

mysql儲存引擎:

儲存引擎是在mysql安裝時就必須和mysql一起被編譯安裝了,mysql ab在架構改造的時候,讓儲存引擎和sqllayer各自更為獨立、耦合更小、可以做到線上載入新的儲存引擎,而不影響mysql的正常運行。外掛程式式儲存引擎的架構,為儲存引擎載入和移動更靈活方便,也使自行開發儲存體引擎更為方便簡單。主要外掛程式式儲存引擎包括mylsam、lnnodb、ndb cluster、maria、falcon、memory、archive等

mylsam儲存引擎簡介:

1、mysql5.1之前默儲存引擎

2、mylsam儲存引擎的表在資料庫中,每個表被存放為三個以表命名的物理檔案:.frm  .MYI  .MYD每個表都有這樣的三個檔案作為儲存類型的表的儲存,不管這個表有多少引擎,都存放在同一個.MYI中

3.mylsam支援的三種類型索引:B-Tree索引、R-Tree索引、Full-text索引

4.不支援事務及只有表鎖

5.如過mysqld正在寫入該表時被kill掉、主機宕機、磁碟硬體故障、mylsam儲存引擎的bug都會造成表破壞

6.mylsam的資料存放分為靜態固定長度、動態可變長度、壓縮三種格式

建立資料庫建立一個表估算出規劃多大的空間

650) this.width=650;" src="https://s1.51cto.com/wyfs02/M01/98/9C/wKiom1k-nXSzKDt5AAAbOTNiq78801.png" title="圖片2.png" alt="wKiom1k-nXSzKDt5AAAbOTNiq78801.png" /> 

查看qq的表的結構

650) this.width=650;" src="https://s4.51cto.com/wyfs02/M01/98/9C/wKioL1k-nYDxR4-ZAAAsysGTu_U172.png" title="圖片3.png" alt="wKioL1k-nYDxR4-ZAAAsysGTu_U172.png" /> 

每個位元組相加等於168位元組,如果每天增加10000條記錄,大約需要10000x168/1024/1024=1.6MB

如果發現某個mylsam表出現問題,可以線上通過check  table命令效驗

650) this.width=650;" src="https://s4.51cto.com/wyfs02/M00/98/9C/wKioL1k-nYqB-wpmAAAPkjTkcc8993.png" title="圖片4.png" alt="wKioL1k-nYqB-wpmAAAPkjTkcc8993.png" /> 

lnnodb儲存引擎簡介:

lnnodb能那麼火,主要是在於功能方面較多特點:支援事務、鎖定機制的改進、實現外鍵、完全由使用者定義表的單獨存放和所有表存放在一起。

lnnodb的物理結構分為兩個部分:

1.資料檔案:

存放資料表中的資料和所有的索引資料,包括主鍵和其他普通索引。

2.記錄檔:

lnnodb的記錄檔和oracle的redo日誌比較相似,同樣可以設定多個日誌組(最少2個),同樣採用輪循策略來順序寫入

mylsam和lnnodb的區別:

1.mylsam不支援事務,而lnnodb支援事務,lnnodb的autocommit預設開啟,即每條sql語句會預設封裝成一個事務,自動認可這樣會影響提交速度,最好是把多條sql語句顯示在begin和commit之間,組成事務提交。

查看提交模式是否開啟

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/98/9C/wKioL1k-nZehJ0dPAAAT78IWPNU786.png" title="圖片5.png" alt="wKioL1k-nZehJ0dPAAAT78IWPNU786.png" /> 

650) this.width=650;" src="https://s4.51cto.com/wyfs02/M02/98/9C/wKiom1k-naKjCSn6AAAc9sawlGE653.png" title="圖片6.png" alt="wKiom1k-naKjCSn6AAAc9sawlGE653.png" /> 

2、InnoDB支援資料行鎖定,MyISAM不支援行鎖定,只支援鎖定整個表。

3、InnoDB支援外鍵,MyISAM不支援。

4、InnoDB不支援全文索引,而MyISAM支援。

mysqlslap效能測試mysql二種儲存引擎

mysqlslap是mysql內建的基準測試載入器,優點:查詢資料、使用靈活

查看mysql資料庫預設最大的串連數

650) this.width=650;" src="https://s4.51cto.com/wyfs02/M02/98/9C/wKiom1k-neij5OmWAAANQbmTBrA209.png" title="圖片7.png" alt="wKiom1k-neij5OmWAAANQbmTBrA209.png" /> 

查看預設使用的引擎

650) this.width=650;" src="https://s3.51cto.com/wyfs02/M00/98/9C/wKiom1k-nfLSYzYQAABC-YG6DbE472.png" title="圖片8.png" alt="wKiom1k-nfLSYzYQAABC-YG6DbE472.png" /> 

使用sql指令碼測試  下面的壓力測試數超出了預設數所以報錯

650) this.width=650;" src="https://s5.51cto.com/wyfs02/M01/98/9C/wKiom1k-nf7DQvfCAAAcpyTRJe4188.png" title="圖片9.png" alt="wKiom1k-nf7DQvfCAAAcpyTRJe4188.png" /> 

修改壓力測試數並測試最大值為30,60超過就會出錯  註:多次測試

650) this.width=650;" src="https://s4.51cto.com/wyfs02/M00/98/9C/wKioL1k-ngvT68SgAADED9ZVwRE010.png" title="圖片10.png" alt="wKioL1k-ngvT68SgAADED9ZVwRE010.png" /> 

MySQL內建工具使用介紹

mysql命名:使用最多的一個命名工具,為使用者提供命令列介面來管理mysql伺服器

文法格式:mysql  [options]  [database] 可以使用mysql --help查看使用協助資訊

營運時常用的mysql命令相關參數

使用-e參數查看資料庫

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/98/9C/wKioL1k-nhWStNzIAAAVY-1rAtw295.png" title="圖片11.png" alt="wKioL1k-nhWStNzIAAAVY-1rAtw295.png" /> 

通過使用指令碼建立資料庫、表,對錶進行增、改、刪、查操作

650) this.width=650;" src="https://s1.51cto.com/wyfs02/M01/98/9C/wKiom1k-niHzb1r7AACVgeZLuG4858.png" title="圖片12.png" alt="wKiom1k-niHzb1r7AACVgeZLuG4858.png" /> 

使用root使用者進入mysql給test使用者授權

650) this.width=650;" src="https://s5.51cto.com/wyfs02/M01/98/9C/wKioL1k-ni7wkzYWAAAKuMjMohw289.png" title="圖片13.png" alt="wKioL1k-ni7wkzYWAAAKuMjMohw289.png" /> 

然後給指令碼授予執行許可權

650) this.width=650;" src="https://s4.51cto.com/wyfs02/M00/98/9C/wKiom1k-njmxxQ7aAAAEBFZfXTY438.png" title="圖片14.png" alt="wKiom1k-njmxxQ7aAAAEBFZfXTY438.png" /> 

啟動指令碼

 使用提示符登入mysql查看效果

650) this.width=650;" src="https://s5.51cto.com/wyfs02/M01/98/9C/wKioL1k-nmrgLpmYAABTyN2LRUU028.png" title="圖片15.png" alt="wKioL1k-nmrgLpmYAABTyN2LRUU028.png" /> 

使用tee產生一個檔案;這個檔案包含此資料庫中所有的操作都儲存到這個目錄裡面

650) this.width=650;" src="https://s4.51cto.com/wyfs02/M00/98/9C/wKioL1k-nnrSVmS4AAAFNxwQYXU745.png" title="圖片16.png" alt="wKioL1k-nnrSVmS4AAAFNxwQYXU745.png" /> 

 650) this.width=650;" src="https://s3.51cto.com/wyfs02/M01/98/9C/wKioL1k-noSC2-MeAAAztED0mMI677.png" title="圖片17.png" alt="wKioL1k-noSC2-MeAAAztED0mMI677.png" />

使用ping命令測試是否能正常提供服務

650) this.width=650;" src="https://s3.51cto.com/wyfs02/M01/98/9C/wKioL1k-n-iQfllHAAAgcY60JBo107.png" title="圖片18.png" alt="wKioL1k-n-iQfllHAAAgcY60JBo107.png" /> 

使用status命令擷取當前mysql server的幾個基本的狀態值

650) this.width=650;" src="https://s5.51cto.com/wyfs02/M00/98/9C/wKiom1k-n9vg6koIAAAVj2UaHCU914.png" title="圖片19.png" alt="wKiom1k-n9vg6koIAAAVj2UaHCU914.png" /> 

使用processlist擷取當前資料庫的連接線程資訊

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/98/9C/wKiom1k-n8_zR-9wAAAoBhOmxzo887.png" title="圖片20.png" alt="wKiom1k-n8_zR-9wAAAoBhOmxzo887.png" /> 

編寫mysql監控指令碼

650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/98/9C/wKioL1k-n8XiyhkHAAA4TjuimMc246.png" title="圖片21.png" alt="wKioL1k-n8XiyhkHAAA4TjuimMc246.png" /> 

查看執行的效果 並且給指令碼執行許可權chmod  +x  指令碼名

650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/98/9C/wKiom1k-n7fCI1akAAB5qhnR1fo284.png" title="圖片22.png" alt="wKiom1k-n7fCI1akAAB5qhnR1fo284.png" /> 

查看資料字典,此資料庫包含了其他所有資料庫的中繼資料,包括資料類型、存取權限

650) this.width=650;" src="https://s3.51cto.com/wyfs02/M01/98/9C/wKiom1k-n6zzNmkJAABMZIz8Cm0044.png" title="圖片23.png" alt="wKiom1k-n6zzNmkJAABMZIz8Cm0044.png" /> 


本文出自 “centos7” 部落格,請務必保留此出處http://12832314.blog.51cto.com/12822314/1934710

mysql server-儲存引擎

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.