Home > MySQL
MySQL Archive
MySQLのテーブルサイズを変更する
- 2009-09-22 (火)
- MySQL
MySQLを使って新着ブログRSSを収集・記録し件数をグラフ化しているが、
今日、ふと見るとある時刻から情報が追加されていない。
調べてみるとテーブルサイズが4096MBになっていた。キリがよい数字で怪しい。
INSERTクエリーの実行に失敗していたはずだが、エラーをトラップしていなかったようだ・・・
MySQLのテーブルサイズについて検索してみると、特に指定しないと最大サイズは4096MBになるらしい。
【参考Blog】
【現在のテーブル情報を参照するSQL】
SHOW TABLE STATUS FROM データベース名 LIKE ‘テーブル名‘;
最大サイズ(Max_data_length )は確かに4096MBになっていた。
【テーブルサイズを変更するSQL】
ALTER TABLE テーブル名 MAX_ROWS=36000000, AVG_ROW_LENGTH=500;
(*)MAX_ROWS,AVG_ROW_LENGTHは設計にあわせて変更すること。
1800万レコード/月あれば対応できそうだが、急な増加に耐えうるよう係数2を乗じて3600万レコードとした。
あくまでも一カ月分の情報が対象のため、毎月定期的にテーブルを追加、容量が足りなくなりそうになったらテーブルサイズを変更するなどのロジックを準備する必要はありそう。
まだ実験段階で、続けるかどうかも不明なので、今後の様子をみて準備したい。
今日、ふと見るとある時刻から情報が追加されていない。
調べてみるとテーブルサイズが4096MBになっていた。キリがよい数字で怪しい。
INSERTクエリーの実行に失敗していたはずだが、エラーをトラップしていなかったようだ・・・
MySQLのテーブルサイズについて検索してみると、特に指定しないと最大サイズは4096MBになるらしい。
【参考Blog】
- mysql のひとつのテーブルの最大行数や、データベース全体の容量の制限はどのくらいなのでしょうか?
そのことが書いてあるMYSQLマニュアルの該当部分お願いします。 - MySQL テーブルサイズの上限
【現在のテーブル情報を参照するSQL】
SHOW TABLE STATUS FROM データベース名 LIKE ‘テーブル名‘;
最大サイズ(Max_data_length )は確かに4096MBになっていた。
【テーブルサイズを変更するSQL】
ALTER TABLE テーブル名 MAX_ROWS=36000000, AVG_ROW_LENGTH=500;
(*)MAX_ROWS,AVG_ROW_LENGTHは設計にあわせて変更すること。
1800万レコード/月あれば対応できそうだが、急な増加に耐えうるよう係数2を乗じて3600万レコードとした。
あくまでも一カ月分の情報が対象のため、毎月定期的にテーブルを追加、容量が足りなくなりそうになったらテーブルサイズを変更するなどのロジックを準備する必要はありそう。
まだ実験段階で、続けるかどうかも不明なので、今後の様子をみて準備したい。
- Comments (Close): 0
- Trackbacks (Close): 0
ホーム > MySQL