この質問は何度も聞かれたと思いますが、検索すると、いくつかの回答にいくつかのメモしか見つかりませんでした。
ファイルは一般的に OS+filesystem によって処理されることは知っていますが、これを変更する方法があります (またはあるはずです)。他の大規模な DB システムは、少なくともファイルの事前割り当てを使用し、大きなチャンクを追加して拡張します。私が知っているように、MySQL にはこのタイプの機能がなく (または私の知識が古くなっているのでしょうか?) 、ファイル内のレコード OPTIMIZE TABLE
をデフラグするものしか提供できませんが、ファイル自体は非常に断片化されている可能性があります。
具体的な問題として、スタックとして機能するテーブルがあります。多くINSERT
の とDELETE
があり、データの寿命が短く (数秒から数時間)、スタックの最大サイズがわかっています。テーブルは頻繁に (1 日に何千回も) 変更され、他にもアクティブなテーブルがあるため、このシナリオでは時間の経過とともにディスクのレイアウトが非常に断片化されます。私の現在のアイデアは、スタックテーブル全体を事前に割り当ててから、トップ インデックスとUPDATE
s だけを使用することです。
とにかく、私の特定の問題に加えて(それに対する解決策もあればいいのですが)、できれば* nixシステムで、MyISAMとInnoDBの両方のMySQLデータファイルの最適化を(可能であれば)減らす、または排除するために使用される方法は何ですか? ローデバイス は少なくともInnoDBのソリューションですか?