本文實例講述了MySQL實現MYISAM表批量壓縮的方法。分享給大家供大家參考,具體如下:
關於對MYISAM表的壓縮,可以使用myisampack和myisamchk完成(myisampack完之後必須進行myisamchk才能使用壓縮後的表,而且是只讀的), 其詳細地用法可以參考官方文檔:
http://dev.mysql.com/doc/refman/5.1/zh/client-side-scripts.html。
這兩個操作需要謹慎使用,在壓縮之前需要確認mysqld已關閉或者要壓縮的表不會有其他的sql操作;而且壓縮過程會很占用cpu資源,建議在服務器空閒的狀態進行。
下面是用於實現某數據庫下表壓縮的shell過程(值得注意的是,如果數據量大,建議分多次操作,因其會很耗時):
#!/bin/bash data_dir="/data/mysql/my_dbname/" filelist=`ls $data_dir` echo "MYISAMPACK BEGIN." for filename in $filelist do idx=`expr match "$filename" ".*.MYI"` if [[ $idx>0 ]] then /usr/bin/myisampack $data_dir$filename fi done echo "MYISAMPACK End. MYISAMCHK BEGIN." for filename in $filelist do idx=`expr match "$filename" ".*.MYI"` if [[ $idx>0 ]] then /usr/bin/myisamchk -r -o -f --sort-index --analyze $data_dir$filename fi done echo "MYISAMCHK END."
更多關於MySQL相關內容感興趣的讀者可查看本站專題:《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》、《MySQL數據庫鎖相關技巧匯總》及《MySQL常用函數大匯總》
希望本文所述對大家MySQL數據庫計有所幫助。