程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL實現MYISAM表批量壓縮的方法

MySQL實現MYISAM表批量壓縮的方法

編輯:關於MYSQL數據庫

本文實例講述了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數據庫計有所幫助。

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