TokuDBをいじってみると、行の圧縮やその他のDDLの変更などのために「テーブルを最適化」した後でも、空き領域がファイルシステムに反映されるまでに非決定的な時間がかかります。
これをもっとすぐに強制するか、クリーンアップが進行中かスケジュールされているかどうかのステータスを表示する方法はありますか?
単に「mysql> showprocesslist;」を試しましたか? TokuDBは、最適化操作の進行状況をプレーンビューで表示します。
mytable
データベースにTokuDBテーブルmydb
があるとします。
NULLストレージエンジン変換を行う必要があります。つまり、もう一度TokuDBに変換するだけです。
ALTER TABLE mydb.mytable ENGINE=TokuDB;
ANALYZE TABLE mydb.mytable;
/var/lib/mysql/db
で一時テーブルの作成を見ることができます。 *sql-*
という名前のテーブルを探します
ステージを監視する場合は、テーブルを段階的に変換します
USE mydb
CREATE TABLE mytable_new LIKE mytable;
INSERT INTO mytable_new SELECT * FROM mytable;
ANALYZE TABLE mydb.mytable_new;
ALTER TABLE mytable RENAME mytable_old;
ALTER TABLE mytable_new RENAME mytable;
DROP TABLE mytable_old;
監視するには、/var/lib/mysql/db
に移動してls -l mytable*
を実行します
試してみる !!!
MariaDBには、DDLの進捗計測があります。私は以前の投稿でこれについて書きました OPTIMIZE TABLEの進行状況の進行状況インジケーターはありますか? 。 MariaDBに切り替えてTokuDBを有効にする が必要になる場合があります。