1. 程式人生 > >MySQL mysql server與存儲引擎

MySQL mysql server與存儲引擎

不支持 多個 sql語句 測試 title 行鎖 clu 語句 5.7

mysql server系統架構

技術分享圖片

邏輯模塊組成:

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的數據存放分為靜態固定長度、動態可變長度、壓縮三種格式

創建數據庫創建一個表估算出規劃多大的空間

技術分享圖片

查看qq的表的結構

技術分享圖片

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

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

技術分享圖片

lnnodb存儲引擎簡介:

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

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

1.數據文件:

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

2.日誌文件:

lnnodb的日誌文件和oracle的redo日誌比較相似,同樣可以設置多個日誌組(最少2個),同樣采用輪循策略來順序寫入

mylsam和lnnodb的區別:

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

查看提交模式是否開啟

技術分享圖片

技術分享圖片

2、InnoDB支持數據行鎖定,MyISAM不支持行鎖定,只支持鎖定整個表。

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

4、InnoDB不支持全文索引(5.7支持),而MyISAM支持。

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

mysqlslap是mysql自帶的基準測試工具,優點:查詢數據、使用靈活

查看mysql數據庫默認最大的連接數

技術分享圖片

查看默認使用的引擎

技術分享圖片

使用sql腳本測試 下面的壓力測試數超出了默認數所以報錯

技術分享圖片

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

技術分享圖片

MySQL自帶工具使用介紹

mysql命名:使用最多的一個命名工具,為用戶提供命令行接口來管理mysql服務器

語法格式:mysql [options] [database] 可以使用mysql --help查看使用幫助信息

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

使用-e參數查看數據庫

技術分享圖片

通過使用腳本創建數據庫、表,對表進行增、改、刪、查操作

技術分享圖片

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

技術分享圖片

然後給腳本授予執行權限

技術分享圖片

啟動腳本

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

技術分享圖片

使用tee生成一個文件;這個文件包含此數據庫中所有的操作都保存到這個目錄裏面

技術分享圖片

技術分享圖片

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

技術分享圖片

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

技術分享圖片

使用processlist獲取當前數據庫的連接線程信息

技術分享圖片

編寫mysql監控腳本

技術分享圖片

查看執行的效果 並且給腳本執行權限chmod +x 腳本名

技術分享圖片

查看數據字典,此數據庫包含了其他所有數據庫的元數據,包括數據類型、訪問權限

技術分享圖片

轉載自:

https://blog.51cto.com/12832314/1934710

MySQL mysql server與存儲引擎