MYISAM表批量壓縮

2021-07-05 15:38:05 字數 1170 閱讀 4396

引言:最近mysql的資料庫,資料達到了1.4t了,而且這些資料都是只供查詢的歷史資料。所以我想到mysql的資料壓縮,變成唯讀模式。

關於對myisam表的壓縮,可以使用myisampack和myisamchk完成(myisampack完之後必須進行myisamchk才能使用壓縮後的表,而且是唯讀的), 其詳細地用法可以參考官方文件: 

這兩個操作需要謹慎使用,在壓縮之前需要確認mysqld已關閉或者要壓縮的表不會有其他的sql操作;而且壓縮過程會很占用cpu資源,建議在伺服器空閒的狀態進行。

下面是用於實現某資料庫下表壓縮的shell過程(值得注意的是,如果資料量大,建議分多次操作,因其會很耗時):

#!/bin/bash

data_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壓縮每個索引塊的方法是,先完全儲存索引塊中的第乙個值,然後將其他值和第乙個值進行比較得到相同字首的位元組數 長度 和剩餘的不同字尾部分 即把相同部分去掉 把這部分...