邏輯模塊組成:mysql
mysql邏輯模塊能夠分爲兩層架構,第一層是sql layer主要包括權限判斷、sql解析、執行計劃優化、query cache的處理等;第二層是存儲引擎層storageengine layer,是底層數據存取操做實現部分,由多種存儲引擎共同組成。sql
mysql存儲引擎:數據庫
存儲引擎是在mysql安裝時就必須和mysql一塊兒被編譯安裝了,mysql ab在架構改造的時候,讓存儲引擎和sqllayer各自更爲獨立、耦合更小、能夠作到在線加載新的存儲引擎,而不影響mysql的正常運行。插件式存儲引擎的架構,爲存儲引擎加載和移動更靈活方便,也使自行開發存儲引擎更爲方便簡單。主要插件式存儲引擎包括mylsam、lnnodb、ndb cluster、maria、falcon、memory、archive等服務器
一、mysql5.1以前默存儲引擎架構
二、mylsam存儲引擎的表在數據庫中,每一個表被存放爲三個以表命名的物理文件:.frm .MYI .MYD每一個表都有這樣的三個文件做爲存儲類型的表的存儲,無論這個表有多少引擎,都存放在同一個.MYI中oracle
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的物理結構分爲兩個部分:
1.數據文件:
存放數據表中的數據和全部的索引數據,包括主鍵和其餘普通索引。
2.日誌文件:
lnnodb的日誌文件和oracle的redo日誌比較類似,一樣能夠設置多個日誌組(最少2個),一樣採用輪循策略來順序寫入
mylsam和lnnodb的區別:
1.mylsam不支持事務,而lnnodb支持事務,lnnodb的autocommit默認打開,即每條sql語句會默認封裝成一個事務,自動提交這樣會影響提交速度,最好是把多條sql語句顯示在begin和commit之間,組成事務提交。
查看提交模式是否開啓
二、InnoDB支持數據行鎖定,MyISAM不支持行鎖定,只支持鎖定整個表。
三、InnoDB支持外鍵,MyISAM不支持。
四、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