mysql運(yùn)維內(nèi)參怎么樣 mysql運(yùn)維面試題

該怎么學(xué)習(xí)MySQL數(shù)據(jù)庫(kù),從基礎(chǔ)學(xué)起的哪種?

如果你沒(méi)有 MySQL 的基礎(chǔ),建議可以看看以下書籍:

網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)的關(guān)注點(diǎn)不是能為您做些什么網(wǎng)站,而是怎么做網(wǎng)站,有沒(méi)有做好網(wǎng)站,給創(chuàng)新互聯(lián)建站一個(gè)展示的機(jī)會(huì)來(lái)證明自己,這并不會(huì)花費(fèi)您太多時(shí)間,或許會(huì)給您帶來(lái)新的靈感和驚喜。面向用戶友好,注重用戶體驗(yàn),一切以用戶為中心。

《MySQL 必知必會(huì)》:主要講 SQL 的寫法

《深入淺出 MySQL》:比較全面的講解了 MySQL 的基礎(chǔ)知識(shí),也涉及了一些優(yōu)化。

如果已經(jīng)對(duì) MySQL 比較熟悉了,可以看下面的書籍:

《高性能 MySQL》:里面講了很多 MySQL 優(yōu)化技巧。

《MySQL 技術(shù)內(nèi)幕》:講解了很多 MySQL 原理,強(qiáng)力推薦給想深入學(xué)習(xí) MySQL 的同學(xué)。

《MySQL 內(nèi)核:InnoDB 存儲(chǔ)引擎》:想深入研究 MySQL 內(nèi)核及原理的可以看看。

《MySQL 運(yùn)維內(nèi)參》:對(duì) MySQL 源碼感興趣,可以入手。

《MySQL Internals Manual》

《MySQL 5.7 Reference Manual》

mysql運(yùn)維管理(八):合格的運(yùn)維管理員必須掌握的常用工具

在MySQL日常運(yùn)維工作中,經(jīng)常會(huì)用到各種管理工具,這些工具屬于mysql自帶的管理工具,存儲(chǔ)在mysql目錄下的bin目錄中,例如對(duì)象查看,備份,日志分析等,熟練使用是運(yùn)維開(kāi)發(fā)人員的必備工作,這些工具參數(shù)很多,這里介紹常用選項(xiàng),更多詳細(xì)可參考幫助文件。

在mysql工具集中,管理員使用最頻繁的就是mysql命令了,它是連接數(shù)據(jù)庫(kù)的客戶端工具,類似oracle中的sqlplus,通過(guò)它可以進(jìn)入mysql控制臺(tái)界面。在大部分情況下,使用簡(jiǎn)單,命令語(yǔ)法如下:

常用選項(xiàng):選項(xiàng)一般有兩種表達(dá)方式,一種是"-"+選項(xiàng)單詞縮寫和選項(xiàng)值;另一種是“--”+選項(xiàng)的完整單詞“=”選項(xiàng)實(shí)際值。例如我們連接數(shù)據(jù)庫(kù)的兩種命令如下:

myisampack是一個(gè)表壓縮工具,它對(duì)MyISAM存儲(chǔ)引擎表能進(jìn)行高度壓縮,可以很大的節(jié)省磁盤空間,但是壓縮后的表只能讀,不能寫,不能進(jìn)行DML操作,所以它的使用場(chǎng)景一般是歸檔 歷史 數(shù)據(jù)。命令如下:

當(dāng)對(duì)一個(gè)壓縮表進(jìn)行增加操作時(shí)會(huì)報(bào)一個(gè)錯(cuò)誤:ERROR 1036 Table is read only,但時(shí)對(duì)查詢和統(tǒng)計(jì)時(shí)可以正常操作的。

mysqladmin是一個(gè)對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理操作的客戶端工具,可用來(lái)檢查服務(wù)器是否可用、顯示數(shù)據(jù)庫(kù)版本號(hào)和狀態(tài),還可以直接新增一個(gè)數(shù)據(jù)庫(kù),也可對(duì)數(shù)據(jù)庫(kù)進(jìn)行關(guān)閉,功能和mysql類似,它的參數(shù)和mysql差異不大,命令如下:

它還可以修改root密碼,命令如下

MySQL自帶的mysqlbinlog工具的作用是解析二進(jìn)制binlog的日志內(nèi)容,把二進(jìn)制數(shù)據(jù)還原成mysql可以執(zhí)行的SQL語(yǔ)句。我有篇文章專門介紹該工具的使用,請(qǐng)具體參考:

傳送門:mysql運(yùn)維管理(七):使用Mysqlbinlog工具恢復(fù)增量數(shù)據(jù)

mysqlcheck工具可以用來(lái)檢查和修復(fù)MyISAM存儲(chǔ)引擎的表,還能做優(yōu)化的工作,例如check、repair、analyze、optimize等等功能。具體命令如下:

注意,如果是innodb引擎的表,不能用上述優(yōu)化工具。

mysqldump工具用來(lái)邏輯備份數(shù)據(jù)庫(kù),或者數(shù)據(jù)遷移。該工具是最常用的備份工具。

我有篇文章專門介紹該工具的使用,請(qǐng)具體參考:

傳送門:mysql運(yùn)維管理(五):掌握MySQLdump邏輯備份工具使用

它是數(shù)據(jù)導(dǎo)入工具,專門用來(lái)處理mysqldump 加-T選項(xiàng)后導(dǎo)出的文本文件,基本用法很簡(jiǎn)單,命令如下:

客戶端對(duì)象查找工具,用來(lái)查找數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)的表,表中列或者索引,具體使用命令如下:

不加任何選項(xiàng),默認(rèn)顯示所有數(shù)據(jù)庫(kù)。

常用參數(shù):

--count ,用來(lái)顯示數(shù)據(jù)庫(kù)和表的統(tǒng)計(jì)信息,不指定數(shù)據(jù)庫(kù)的話,顯示所有庫(kù)信息

-k或者--keys,用來(lái)顯示指定表中所有索引,例如查看employees庫(kù)中employees表的索引信息,

在使用mysql使用過(guò)程中,會(huì)經(jīng)常出現(xiàn)錯(cuò)誤,錯(cuò)誤信息都會(huì)帶有一個(gè)編碼,具體編碼代表什么意思,就需要perror來(lái)查看。用法很簡(jiǎn)單:

舉個(gè)例子,我們故意寫錯(cuò)一個(gè)查詢語(yǔ)句,例如:

現(xiàn)在有一個(gè)編碼1054,我們可以用perror查看下

結(jié)果跟用工具顯示的內(nèi)容差不多,當(dāng)然第三方工具也會(huì)顯示錯(cuò)誤信息。

本章做了一個(gè)常用工具的使用匯總,并舉例說(shuō)明了基本用法,熟練使用是每個(gè)運(yùn)維人員必修內(nèi)容,當(dāng)然還有很多參數(shù)沒(méi)有一一列舉,可以參考相關(guān)幫助文檔。

MySQL BTREE索引

個(gè)人能力有限,如有錯(cuò)誤請(qǐng)指出,共同學(xué)習(xí)。

二叉樹(shù)

B樹(shù)

B+樹(shù)

特點(diǎn):

聚簇索引

二級(jí)索引

key數(shù)據(jù)存儲(chǔ)量估算:

若每個(gè)頁(yè)可以存1000個(gè)key,而且樹(shù)的高度是4,那么

前提條件如下:

插入步驟

步驟一

因?yàn)樗饕羞€沒(méi)有數(shù)據(jù),所以此時(shí)的B+樹(shù)只有一個(gè)空的根結(jié)點(diǎn),又由于一個(gè)頁(yè)只能存3個(gè)key,首先將10,20,5插入進(jìn)去(實(shí)際上此步發(fā)生了3次插入),然后在頁(yè)面內(nèi)做數(shù)據(jù)排序,最終結(jié)果如下圖:

步驟二:

由于根頁(yè)面已經(jīng)寫滿,此時(shí)插入8,將發(fā)生分裂(根頁(yè)面分裂),大致步驟如下:

注意:在分裂過(guò)程中,根結(jié)點(diǎn)始終是不會(huì)變的,不管變成多大的樹(shù),根結(jié)點(diǎn)的頁(yè)面號(hào)始終如一。

步驟五:

插入數(shù)據(jù)40,發(fā)現(xiàn)比根結(jié)點(diǎn)23大,找到103號(hào)頁(yè)面,發(fā)現(xiàn)已滿,執(zhí)行分裂,分裂同上面葉子結(jié)點(diǎn)的分裂步驟。分裂后如圖所示:

步驟六:

繼續(xù)插入下一個(gè)數(shù)據(jù)9,因?yàn)楸?0小,找到101號(hào)頁(yè)面,發(fā)現(xiàn)已滿,需要做葉子結(jié)點(diǎn)分裂,如下圖:

傳統(tǒng)B+樹(shù)的數(shù)據(jù)刪除,一般都會(huì)有一個(gè)所謂的填充因子,來(lái)控制頁(yè)面數(shù)據(jù)的刪除比例,如果數(shù)據(jù)量小于這個(gè)填充因子所表示的數(shù)據(jù)量,就會(huì)有節(jié)點(diǎn)合并,這與分裂是相對(duì)應(yīng)的。

InnoDB的實(shí)現(xiàn)與傳統(tǒng)B+樹(shù)算法有不同之處,InnoDB在刪除索引數(shù)據(jù)時(shí),會(huì)先檢查當(dāng)前頁(yè)剩余的記錄數(shù),如果只剩下一條記錄,就會(huì)直接將這個(gè)頁(yè)面從B+樹(shù)中摘除,也只有這種情況,InnoDB才會(huì)回收一個(gè)頁(yè)面,InnoDB的頁(yè)面沒(méi)有合并一說(shuō),但是對(duì)于根節(jié)點(diǎn),即使索引數(shù)據(jù)全部刪除,根節(jié)點(diǎn)頁(yè)依然存在,只不過(guò)是以空頁(yè)的形式存在。

下面舉個(gè)例子描述索引刪除過(guò)程,前提條件與前面插入記錄時(shí)一致。

刪除數(shù)據(jù) 50

刪除過(guò)程全部結(jié)束,最終得到一個(gè)空的索引頁(yè)。

《MySQL運(yùn)維內(nèi)參》

B+樹(shù)動(dòng)畫演示:

分享題目:mysql運(yùn)維內(nèi)參怎么樣 mysql運(yùn)維面試題
網(wǎng)站鏈接:http://muchs.cn/article8/dopooip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航定制開(kāi)發(fā)、網(wǎng)站營(yíng)銷、移動(dòng)網(wǎng)站建設(shè)、App設(shè)計(jì)、軟件開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化