質問: MYSQLを使ってデータベースを構築し始めましたが、テーブルは1つで複雑なクエリーなんてありませんが、1つのレコードの中に画像を保存しています。 画像があるおかげで、SQLのバックアップして出来るfileサイズが800MBになっています。1年後はこのままだと2GBくらいになってしまいます。 画像はrootに保存しています。 OS ubuntu9.10です。 1.動かなくなる制限はあるのでしょうか? 2.今はまだ検索はとても早く出来ますが、今後画像の影響で遅くなったりしますか?
回答: MySQL のバージョンと使ってるストレージエンジンを書かないと何とも言えないが、 一例として MySQL :: MySQL 5.1 リファレンスマニュアル :: 13.4 MyISAM ストレージエンジン > > MyISAMテーブルには232 (~4.295E+09) 行の制限があります。MySQLを --with-big-tables オプションで作成すると、行の制限を (232)2 (1.844E+19) 行に増加させる事ができます。 > > > 上記のような制限はある。 InnoDB だとこんな感じ MySQL :: MySQL 5.1 リファレンスマニュアル :: 13.5.16 InnoDB テーブル上の制約 > > 最小テーブルスペース サイズは10MB です。最大テーブルスペース サイズは40億データベース ページ(64TB)です。これはテーブルにとっても最大サイズです。 > > > > > 今はまだ検索はとても早く出来ますが、今後画像の影響で遅くなったりしますか? > > > インデックスを適切に作成・メンテナンスし、インデックスを使用するようなクエリであれば 性能の劣化は大きくはない。 もちろんレコード数の増加による速度低下はあるが画像サイズが直接影響するわけではない。 > > 1年後はこのままだと2GBくらいになってしまいます。 > > > 今時のサーバースペックだと別段大したデータ量ではないけどね。