2
InnoDBテーブルからのスペースの削除と再利用
700GBのInnoDBテーブルがあり、それ以上データを書き込みません(読み取りのみ)。保持している古いデータを削除し、そのディスク領域を再利用します(不足しているため)。削除部分は非常に簡単です。auto-incプライマリインデックスがあるので、それを使用してチャンク単位で繰り返し、行を削除できますが、スペースを取り戻すことはできません。私はOPTIMIZE TABLEそう思いますが、700GBのテーブルではそれが永遠にかかるかもしれませんので、見落としている別のオプションはありますか? RolandoMySQLDBAによる編集 テーブルがmydb.mytableであると仮定すると、次のクエリを実行してここに投稿し、テーブルの縮小に必要なディスク容量を判断できるようにしてください。 SELECT FORMAT(dat/POWER(1024,3),2) datsize, FORMAT(ndx/POWER(1024,3),2) ndxsize, FORMAT((dat+ndx)/POWER(1024,3),2) tblsize FROM (SELECT data_length dat,index_length ndx FROM information_schema.tables WHERE table_schema='mydb' AND table_name='mytable') A; 許可されている場合は、テーブル構造も確認する必要があります。 ノーム編集 これはクエリの出力です: datsize ndxsize tblsize 682.51 47.57 730.08 これがテーブル構造です(SHOW CREATE TABLE) `CREATE TABLE `mybigtable` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL, `created_at` datetime …