欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql表優(yōu)化、分析、檢查和修復(fù)的方法詳解

 更新時(shí)間:2016年04月19日 11:13:08   作者:Chinaz  
這篇文章主要介紹了mysql表優(yōu)化、分析、檢查和修復(fù)的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了MySQL表進(jìn)行優(yōu)化,分析與修復(fù)等操作的各種常見(jiàn)命令與使用技巧,需要的朋友可以參考下

本文實(shí)例講述了mysql表優(yōu)化、分析、檢查和修復(fù)的方法。分享給大家供大家參考,具體如下:

這里介紹對(duì)數(shù)據(jù)庫(kù)的管理常規(guī)就是進(jìn)行預(yù)防性的維護(hù),以及修復(fù)那些出現(xiàn)問(wèn)題的內(nèi)容。

進(jìn)行檢查和修復(fù)通常具有四個(gè)主要的任務(wù):

1. 對(duì)表進(jìn)行優(yōu)化

2. 對(duì)表進(jìn)行分析(分析并存儲(chǔ)MyISAM和BDB表中鍵的分布)

3. 對(duì)表進(jìn)行檢查(檢查表的錯(cuò)誤,并且為MyISAM更新鍵的統(tǒng)計(jì)內(nèi)容)

4. 對(duì)表進(jìn)行修復(fù)(修復(fù)被破壞的MyISAM表)

一、對(duì)表進(jìn)行優(yōu)化

優(yōu)化表有很多方式實(shí)現(xiàn): OPTIMIZE TABLE語(yǔ)句、mysqlcheck工具(服務(wù)器要運(yùn)行)或myisamchk(服務(wù)器沒(méi)有運(yùn)行或表中沒(méi)有交互)

為什么優(yōu)化?隨著MySQL的使用,包括BLOB和VARCHAR字節(jié)的表將變得比較繁冗,因?yàn)檫@些字段長(zhǎng)度不同,對(duì)記錄進(jìn)行插入、更新或刪除時(shí),會(huì)占有不同大小的空間,記錄就會(huì)變成碎片,且留下空閑的空間。像具有碎片的磁盤(pán),會(huì)降低性能,需要整理,因此要優(yōu)化。

1. 利用OPTIMIZE語(yǔ)句對(duì)表進(jìn)行優(yōu)化

# mysql>OPTIMIZE TABLE 表名

這樣就對(duì)表名進(jìn)行了優(yōu)化。

2. 利用mysqlcheck對(duì)表進(jìn)行優(yōu)化

mysqlcheck可進(jìn)行優(yōu)化外,還可執(zhí)行大量的檢查和修復(fù)任務(wù)。

# mysqlcheck -o 數(shù)據(jù)庫(kù)名 表名 -uroot -p111111 (一張表)
# mysqlcheck -o 數(shù)據(jù)庫(kù)名 表名1 表名2 -uroot -p111111 (多張表)
# mysqlcheck -o 數(shù)據(jù)庫(kù)名 -uroot -p111111 (對(duì)整個(gè)數(shù)據(jù)庫(kù))

3. 利用myisamchk對(duì)表進(jìn)行優(yōu)化

# myisamchk --quick --check-only-changed --sort-index --analyze 表名
# myisamchk -r 表名 (參數(shù)-r表示對(duì)表進(jìn)行修復(fù),同時(shí)也刪去了浪費(fèi)的空間)
# myisamchk -r /usr/local/mysql/data/testblog/article (指定表所在的路徑)

以上操作需在服務(wù)器關(guān)閉或沒(méi)有與服務(wù)器互操作的時(shí)候,可以使用myisamchk命令行工具(如果服務(wù)器正在運(yùn)行,那么在運(yùn)行這條語(yǔ)句之前利用mysqladmin flush-tables對(duì)表進(jìn)行刷新。需確保服務(wù)器沒(méi)有與表進(jìn)行互操作,否則會(huì)出現(xiàn)故障)。myisamchk是最老的方法。必須在正確位置上運(yùn)行myisamchk,或者指定表所在的路徑。

注意:在優(yōu)化過(guò)程中,表會(huì)被鎖住,因此不要在忙時(shí)進(jìn)行優(yōu)化操作。同樣,需要有足夠的空間才能進(jìn)行OPTIMIZE TABLE。如果沒(méi)有磁盤(pán)空間,MySQL將不能進(jìn)行優(yōu)化,表也無(wú)法使用。

優(yōu)化是對(duì)包含MyISAM表的數(shù)據(jù)庫(kù)的常規(guī)管理事務(wù)中一個(gè)重要環(huán)節(jié),應(yīng)該定期進(jìn)行。

二、對(duì)表進(jìn)行分析

對(duì)表的定期分析可以改善性能,且應(yīng)該成為常規(guī)維護(hù)工作的一部分。因?yàn)橥ㄟ^(guò)更新表的索引信息對(duì)表進(jìn)行分析,可改善數(shù)據(jù)庫(kù)性能。

有三種方法可以對(duì)表進(jìn)行分析:

1. 連接到MySQL時(shí),使用ANALYZE TABLE語(yǔ)句

2. 利用mysqlcheck命令行工具(服務(wù)器需要運(yùn)行,并且只對(duì)MyISAM表起作用)

3. 利用myisamchk命令行工具(服務(wù)器不應(yīng)該運(yùn)行,或無(wú)對(duì)所操作的表發(fā)生互操作)

# ANALYZE TABLE 表名;
# mysqlcheck -a 數(shù)據(jù)庫(kù)名 表名 -uroot -p111111
# mysqlcheck -a 數(shù)據(jù)庫(kù)名 表名1 表名2 -uroot -p111111

如果試圖對(duì)不支持分析操作的表進(jìn)行分析(如InnoDB),那操作將無(wú)法進(jìn)行

# myisamchk -a /usr/local/mysql/data/數(shù)據(jù)庫(kù)/表名

更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《MySQL事務(wù)操作技巧匯總》、《MySQL存儲(chǔ)過(guò)程技巧大全》、《MySQL數(shù)據(jù)庫(kù)鎖相關(guān)技巧匯總》及《MySQL常用函數(shù)大匯總

希望本文所述對(duì)大家MySQL數(shù)據(jù)庫(kù)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論