時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)
對數(shù)據(jù)庫的管理常規(guī)就是進行預(yù)防性的維護,以及修復(fù)那些出現(xiàn)問題的內(nèi)容。
進行檢查和修復(fù)通常具有四個主要的任務(wù):
1. 對表進行優(yōu)化
2. 對表進行分析(分析并存儲MyISAM和BDB表中鍵的分布)
3. 對表進行檢查(檢查表的錯誤,并且為MyISAM更新鍵的統(tǒng)計內(nèi)容)
4. 對表進行修復(fù)(修復(fù)被破壞的MyISAM表)
一、對表進行優(yōu)化
優(yōu)化表有很多方式實現(xiàn): OPTIMIZE TABLE語句、mysqlcheck工具(服務(wù)器要運行)或myisamchk(服務(wù)器沒有運行或表中沒有交互)
為什么優(yōu)化?隨著MySQL的使用,包括BLOB和VARCHAR字節(jié)的表將變得比較繁冗,因為這些字段長度不同,對記錄進行插入、更新或刪除時,會占有不同大小的空間,記錄就會變成碎片,且留下空閑的空間。像具有碎片的磁盤,會降低性能,需要整理,因此要優(yōu)化。
1. 利用OPTIMIZE語句對表進行優(yōu)化
# mysql>OPTIMIZE TABLE 表名
這樣就對表名進行了優(yōu)化。
2. 利用mysqlcheck對表進行優(yōu)化
mysqlcheck可進行優(yōu)化外,還可執(zhí)行大量的檢查和修復(fù)任務(wù)。
# mysqlcheck -o 數(shù)據(jù)庫名 表名 -uroot -p111111 (一張表)
# mysqlcheck -o 數(shù)據(jù)庫名 表名1 表名2 -uroot -p111111 (多張表)
# mysqlcheck -o 數(shù)據(jù)庫名 -uroot -p111111 (對整個數(shù)據(jù)庫)
3. 利用myisamchk對表進行優(yōu)化
# myisamchk --quick --check-only-changed --sort-index --analyze 表名
# myisamchk -r 表名 (參數(shù)-r表示對表進行修復(fù),同時也刪去了浪費的空間)
# myisamchk -r /usr/local/mysql/data/testblog/article (指定表所在的路徑)
以上操作需在服務(wù)器關(guān)閉或沒有與服務(wù)器互操作的時候,可以使用myisamchk命令行工具(如果服務(wù)器正在運行,那么在運行這條語句之前利用mysqladmin flush-tables對表進行刷新。需確保服務(wù)器沒有與表進行互操作,否則會出現(xiàn)故障)。myisamchk是最老的方法。必須在正確位置上運行myisamchk,或者指定表所在的路徑。
注意:在優(yōu)化過程中,表會被鎖住,因此不要在忙時進行優(yōu)化操作。同樣,需要有足夠的空間才能進行OPTIMIZE TABLE。如果沒有磁盤空間,MySQL將不能進行優(yōu)化,表也無法使用。
優(yōu)化是對包含MyISAM表的數(shù)據(jù)庫的常規(guī)管理事務(wù)中一個重要環(huán)節(jié),應(yīng)該定期進行。
二、對表進行分析
對表的定期分析可以改善性能,且應(yīng)該成為常規(guī)維護工作的一部分。因為通過更新表的索引信息對表進行分析,可改善數(shù)據(jù)庫性能。
有三種方法可以對表進行分析:
1. 連接到MySQL時,使用ANALYZE TABLE語句
2. 利用mysqlcheck命令行工具(服務(wù)器需要運行,并且只對MyISAM表起作用)
3. 利用myisamchk命令行工具(服務(wù)器不應(yīng)該運行,或無對所操作的表發(fā)生互操作)
# ANALYZE TABLE 表名;
# mysqlcheck -a 數(shù)據(jù)庫名 表名 -uroot -p111111
# mysqlcheck -a 數(shù)據(jù)庫名 表名1 表名2 -uroot -p111111
如果試圖對不支持分析操作的表進行分析(如InnoDB),那操作將無法進行
# myisamchk -a /usr/local/mysql/data/數(shù)據(jù)庫/表名
關(guān)鍵詞標(biāo)簽:mysql表優(yōu)化
相關(guān)閱讀
熱門文章 Xbox Game Pass 10款MySQL數(shù)據(jù)庫客戶端圖形界面管理工具推薦 MySQL常用維護管理工具 MySQL數(shù)據(jù)庫啟動失敗1067進程意外終止的解決辦法總結(jié)
人氣排行 10款MySQL數(shù)據(jù)庫客戶端圖形界面管理工具推薦 MySQL數(shù)據(jù)庫啟動失敗1067進程意外終止的解決辦法總結(jié) Mysql 1045錯誤解決辦法 MySQL服務(wù)器進程CPU占用100%解決辦法 MySQL導(dǎo)出導(dǎo)入命令的用例 MySQL連接字符串的實際操作步驟匯總 MySQL無法啟動、無法停止各種解決方法總結(jié) 三種常用的MySQL建表語句