テーマ、知りたいこと
MariaDBの肥大化対策について
背景、状況
フリー(オープン)のDBを比較検討しています。
MariaDBの「肥大化対策」を調べていて…
・データベースをエクスポート(ダンプ)します
・MySQLを停止
・設定ファイを変更してテーブル単位で管理
・MySQLを起動
・データベースをインポート
の様な対策は、ネットにあるのですが、
(週1/月1の)日常的に使える「バキューム」とか「コンパクト化」の様なコマンドはあるのでしょうか?
初心者の疑問で申し訳ありません。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答6件
#1
総合スコア80852
投稿2024/04/10 06:57
MySQL/MariaDBだとOPTIMIZE TABLEというのがあります(私はほとんど使ったことがないですが)
https://mariadb.com/kb/en/optimize-table/
紹介・検証記事:https://gihyo.jp/dev/serial/01/mysql-road-construction-news/0035
ただ、肥大化要因は様々なので起きている現象や問題によって対策は変わってくると思います。
場合により正規化を行って移行なんかも視野。
#2
この回答は、運営により削除されました。
#3
総合スコア114883
投稿2024/04/10 08:55
編集2024/04/10 08:56肥大化対策
そもそも肥大化とは何を気にしているのでしょうか?
1テーブルに格納するデータが多すぎる
- 大前提として正規化
- 1つのテーブルを複数に分割して管理:パーティショニング
不要データを捨てる
- 不要だと判断できる個別データは適当なタイミングで削除
- そのうえでオプティマイズする
無駄なバイナリーログの削除
SQL
1/* 最後のデータをひろって*/ 2show master logs; 3/* purgeする */ 4purge master logs to 'mysql-bin.最後の番号';
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#4
総合スコア9
投稿2024/04/11 00:47
#3
お返事ありがとうございます。
「MariaDBではInnoDB テーブルが肥大化して、これを解消するには、ダンプして…」の方法しか無いのかと思いまいした。
そうですよね、
・正規化
・不要データ削除
は基本で、
デーブル毎のオプティマイズはこれでしょうか?↓
ALTER TABLE <テーブル名> ENGINE INNODB;
OPTIMIZE TABLE <テーブル名>;
そして、バイナリーログの削除。
安心しました。
それにしても「ダンプして…」の方は、日頃のメンテを放棄されていたんでしょうかね?
最終手段として有効でしょうが。(笑)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#7
総合スコア9
投稿2024/04/11 04:32
編集2024/04/11 04:34#6
ありがとうございます。
とても勉強になります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。