程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql表優化、剖析、檢討和修復的辦法詳解

mysql表優化、剖析、檢討和修復的辦法詳解

編輯:MySQL綜合教程

mysql表優化、剖析、檢討和修復的辦法詳解。本站提示廣大學習愛好者:(mysql表優化、剖析、檢討和修復的辦法詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是mysql表優化、剖析、檢討和修復的辦法詳解正文


本文實例講述了mysql表優化、剖析、檢討和修復的辦法。分享給年夜家供年夜家參考,詳細以下:

這裡引見對數據庫的治理慣例就是停止預防性的保護,和修復那些湧現成績的內容。

停止檢討和修復平日具有四個重要的義務:

1. 對表停止優化

2. 對表停止剖析(剖析並存儲MyISAM和BDB表中鍵的散布)

3. 對表停止檢討(檢討表的毛病,而且為MyISAM更新鍵的統計內容)

4. 對表停止修復(修復被損壞的MyISAM表)

1、對表停止優化

優化表有許多方法完成: OPTIMIZE TABLE語句、mysqlcheck對象(辦事器要運轉)或myisamchk(辦事器沒有運轉或表中沒有交互)

為何優化?跟著MySQL的應用,包含BLOB和VARCHAR字節的表將變得比擬繁雜,由於這些字段長度分歧,對記載停止拔出、更新或刪除時,會占領分歧年夜小的空間,記載就會釀成碎片,且留下余暇的空間。像具有碎片的磁盤,會下降機能,須要整頓,是以要優化。

1. 應用OPTIMIZE語句對表停止優化

# mysql>OPTIMIZE TABLE 表名

如許就對表名停止了優化。

2. 應用mysqlcheck對表停止優化

mysqlcheck可停止優化外,還可履行年夜量的檢討和修復義務。

# mysqlcheck -o 數據庫名 表名 -uroot -p111111 (一張表)
# mysqlcheck -o 數據庫名 表名1 表名2 -uroot -p111111 (多張表)
# mysqlcheck -o 數據庫名 -uroot -p111111 (對全部數據庫)

3. 應用myisamchk對表停止優化

# myisamchk --quick --check-only-changed --sort-index --analyze 表名
# myisamchk -r 表名 (參數-r表現對表停止修復,同時也刪去了糟蹋的空間)
# myisamchk -r /usr/local/mysql/data/testblog/article (指定表地點的途徑)

以上操作需在辦事器封閉或沒有與辦事器互操作的時刻,可使用myisamchk敕令行對象(假如辦事器正在運轉,那末在運轉這條語句之前應用mysqladmin flush-tables對表停止刷新。需確保辦事器沒有與表停止互操作,不然會湧現毛病)。myisamchk是最老的辦法。必需在准確地位上運轉myisamchk,或許指定表地點的途徑。

留意:在優化進程中,表會被鎖住,是以不要在忙時停止優化操作。異樣,須要有足夠的空間能力停止OPTIMIZE TABLE。假如沒有磁盤空間,MySQL將不克不及停止優化,表也沒法應用。

優化是對包括MyISAM表的數據庫的慣例治理事務中一個主要環節,應當按期停止。

2、對表停止剖析

對表的按期剖析可以改良機能,且應當成為慣例保護任務的一部門。由於經由過程更新表的索引信息對表停止剖析,可改良數據庫機能。

有三種辦法可以對表停止剖析:

1. 銜接到MySQL時,應用ANALYZE TABLE語句

2. 應用mysqlcheck敕令行對象(辦事器須要運轉,而且只對MyISAM表起感化)

3. 應用myisamchk敕令行對象(辦事器不該該運轉,或無對所操作的表產生互操作)

# ANALYZE TABLE 表名;
# mysqlcheck -a 數據庫名 表名 -uroot -p111111
# mysqlcheck -a 數據庫名 表名1 表名2 -uroot -p111111

假如試圖對不支撐剖析操作的表停止剖析(如InnoDB),那操作將沒法停止

# myisamchk -a /usr/local/mysql/data/數據庫/表名

願望本文所述對年夜家MySQL數據庫計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved