您好,登錄后才能下訂單哦!
下文主要給大家?guī)?lái)mysql的server層和存儲(chǔ)引擎層是如何相互交集,希望這些內(nèi)容能夠帶給大家實(shí)際用處,這也是我編輯mysql的server層和存儲(chǔ)引擎層是如何相互交集這篇文章的主要目的。好了,廢話不多說(shuō),大家直接看下文吧。
mysql server系統(tǒng)架構(gòu)
邏輯模塊組成:
mysql邏輯模塊可以分為兩層架構(gòu),第一層是sql layer主要包括權(quán)限判斷、sql解析、執(zhí)行計(jì)劃優(yōu)化、query cache的處理等;第二層是存儲(chǔ)引擎層storageengine layer,是底層數(shù)據(jù)存取操作實(shí)現(xiàn)部分,由多種存儲(chǔ)引擎共同組成。
mysql存儲(chǔ)引擎:
存儲(chǔ)引擎是在mysql安裝時(shí)就必須和mysql一起被編譯安裝了,mysql ab在架構(gòu)改造的時(shí)候,讓存儲(chǔ)引擎和sqllayer各自更為獨(dú)立、耦合更小、可以做到在線加載新的存儲(chǔ)引擎,而不影響mysql的正常運(yùn)行。插件式存儲(chǔ)引擎的架構(gòu),為存儲(chǔ)引擎加載和移動(dòng)更靈活方便,也使自行開發(fā)存儲(chǔ)引擎更為方便簡(jiǎn)單。主要插件式存儲(chǔ)引擎包括mylsam、lnnodb、ndb cluster、maria、falcon、memory、archive等
mylsam存儲(chǔ)引擎簡(jiǎn)介:
1、mysql5.1之前默存儲(chǔ)引擎
2、mylsam存儲(chǔ)引擎的表在數(shù)據(jù)庫(kù)中,每個(gè)表被存放為三個(gè)以表命名的物理文件:.frm .MYI .MYD每個(gè)表都有這樣的三個(gè)文件作為存儲(chǔ)類型的表的存儲(chǔ),不管這個(gè)表有多少引擎,都存放在同一個(gè).MYI中
3.mylsam支持的三種類型索引:B-Tree索引、R-Tree索引、Full-text索引
4.不支持事務(wù)及只有表鎖
5.如過(guò)mysqld正在寫入該表時(shí)被kill掉、主機(jī)宕機(jī)、磁盤硬件故障、mylsam存儲(chǔ)引擎的bug都會(huì)造成表破壞
6.mylsam的數(shù)據(jù)存放分為靜態(tài)固定長(zhǎng)度、動(dòng)態(tài)可變長(zhǎng)度、壓縮三種格式
創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)表估算出規(guī)劃多大的空間
查看qq的表的結(jié)構(gòu)
每個(gè)字節(jié)相加等于168字節(jié),如果每天增加10000條記錄,大約需要10000x168/1024/1024=1.6MB
如果發(fā)現(xiàn)某個(gè)mylsam表出現(xiàn)問(wèn)題,可以在線通過(guò)check table命令效驗(yàn)
lnnodb存儲(chǔ)引擎簡(jiǎn)介:
lnnodb能那么火,主要是在于功能方面較多特點(diǎn):支持事務(wù)、鎖定機(jī)制的改進(jìn)、實(shí)現(xiàn)外鍵、完全由用戶定義表的單獨(dú)存放和所有表存放在一起。
lnnodb的物理結(jié)構(gòu)分為兩個(gè)部分:
1.數(shù)據(jù)文件:
存放數(shù)據(jù)表中的數(shù)據(jù)和所有的索引數(shù)據(jù),包括主鍵和其他普通索引。
2.日志文件:
lnnodb的日志文件和oracle的redo日志比較相似,同樣可以設(shè)置多個(gè)日志組(最少2個(gè)),同樣采用輪循策略來(lái)順序?qū)懭?/span>
mylsam和lnnodb的區(qū)別:
1.mylsam不支持事務(wù),而lnnodb支持事務(wù),lnnodb的autocommit默認(rèn)打開,即每條sql語(yǔ)句會(huì)默認(rèn)封裝成一個(gè)事務(wù),自動(dòng)提交這樣會(huì)影響提交速度,最好是把多條sql語(yǔ)句顯示在begin和commit之間,組成事務(wù)提交。
查看提交模式是否開啟
2、InnoDB支持?jǐn)?shù)據(jù)行鎖定,MyISAM不支持行鎖定,只支持鎖定整個(gè)表。
3、InnoDB支持外鍵,MyISAM不支持。
4、InnoDB不支持全文索引,而MyISAM支持。
mysqlslap性能測(cè)試mysql二種存儲(chǔ)引擎
mysqlslap是mysql自帶的基準(zhǔn)測(cè)試工具,優(yōu)點(diǎn):查詢數(shù)據(jù)、使用靈活
查看mysql數(shù)據(jù)庫(kù)默認(rèn)最大的連接數(shù)
查看默認(rèn)使用的引擎
使用sql腳本測(cè)試 下面的壓力測(cè)試數(shù)超出了默認(rèn)數(shù)所以報(bào)錯(cuò)
修改壓力測(cè)試數(shù)并測(cè)試最大值為30,60超過(guò)就會(huì)出錯(cuò) 注:多次測(cè)試
MySQL自帶工具使用介紹
mysql命名:使用最多的一個(gè)命名工具,為用戶提供命令行接口來(lái)管理mysql云服務(wù)器
語(yǔ)法格式:mysql [options] [database] 可以使用mysql --help查看使用幫助信息
運(yùn)維時(shí)常用的mysql命令相關(guān)參數(shù)
使用-e參數(shù)查看數(shù)據(jù)庫(kù)
通過(guò)使用腳本創(chuàng)建數(shù)據(jù)庫(kù)、表,對(duì)表進(jìn)行增、改、刪、查操作
使用root用戶進(jìn)入mysql給test用戶授權(quán)
然后給腳本授予執(zhí)行權(quán)限
啟動(dòng)腳本
使用提示符登錄mysql查看效果
使用tee生成一個(gè)文件;這個(gè)文件包含此數(shù)據(jù)庫(kù)中所有的操作都保存到這個(gè)目錄里面
使用ping命令測(cè)試是否能正常提供服務(wù)
使用status命令獲取當(dāng)前mysql server的幾個(gè)基本的狀態(tài)值
使用processlist獲取當(dāng)前數(shù)據(jù)庫(kù)的連接線程信息
編寫mysql監(jiān)控腳本
查看執(zhí)行的效果 并且給腳本執(zhí)行權(quán)限chmod +x 腳本名
查看數(shù)據(jù)字典,此數(shù)據(jù)庫(kù)包含了其他所有數(shù)據(jù)庫(kù)的元數(shù)據(jù),包括數(shù)據(jù)類型、訪問(wèn)權(quán)限
對(duì)于以上關(guān)于mysql的server層和存儲(chǔ)引擎層是如何相互交集,大家是不是覺得非常有幫助。如果需要了解更多內(nèi)容,請(qǐng)繼續(xù)關(guān)注我們的行業(yè)資訊,相信你會(huì)喜歡上這些內(nèi)容的。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。