引言:最近mysql的資料庫,資料達到了1.4t了,而且這些資料都是只供查詢的歷史資料。所以我想到mysql的資料壓縮,變成唯讀模式。
關於對myisam表的壓縮,可以使用myisampack和myisamchk完成(myisampack完之後必須進行myisamchk才能使用壓縮後的表,而且是唯讀的), 其詳細地用法可以參考官方文件:
這兩個操作需要謹慎使用,在壓縮之前需要確認mysqld已關閉或者要壓縮的表不會有其他的sql操作;而且壓縮過程會很占用cpu資源,建議在伺服器空閒的狀態進行。
下面是用於實現某資料庫下表壓縮的shell過程(值得注意的是,如果資料量大,建議分多次操作,因其會很耗時):
#!/bin/bashdata_dir
="/data/mysql/my_dbname/"
filelist
=`ls $data_dir`
echo
"myisampack begin."
forfilename
in$filelist
doidx
=`expr match "$filename" ".*.myi"`
if[[
$idx
>0]]
then
/usr
/bin
/myisampack $data_dir$filename
fidone
echo
"myisampack end. myisamchk begin."
forfilename
in$filelist
doidx
=`expr match "$filename" ".*.myi"`
if[[
$idx
>0]]
then
/usr
/bin
/myisamchk -r
-o -f
--sort
-index
--analyze $data_dir$filename
#/usr/local/mysql5-3306/bin/myisamchk -rq --sort-index --analyze $table2
fidone
echo
"myisamchk end."
MYISAM表批量壓縮
myisam表批量壓縮 這兩個操作需要謹慎使用,在壓縮之前需要確認mysqld已關閉或者要壓縮的表不會有其他的sql操作 而且壓縮過程會很占用cpu資源,建議在伺服器空閒的狀態進行。下面是用於實現某資料庫下表壓縮的shell過程 值得注意的是,如果資料量大,建議分多次操作,因其會很耗時 1 bin ...
mysql MYISAM表批量壓縮
關於對myisam表的壓縮,可以使用myisampack和myisamchk完成 myisampack完之後必須進行myisamchk才能使用壓縮後的表,而且是唯讀的 其詳細地用法可以參考官方文件 這兩個操作需要謹慎使用,在壓縮之前需要確認mysqld已關閉或者要壓縮的表不會有其他的sql操作 而且...
myisam壓縮(字首壓縮)索引
myisam使用字首壓縮來減少索引的大小,從而讓更多的索引可以放入記憶體中,預設只壓縮字串,但通過引數配置也可以對整數做壓縮,myisam壓縮每個索引塊的方法是,先完全儲存索引塊中的第乙個值,然後將其他值和第乙個值進行比較得到相同字首的位元組數 長度 和剩餘的不同字尾部分 即把相同部分去掉 把這部分...