2008-09-07 13 views
27

MySQLテーブルの最大サイズは? 50GBで200万回ですか? 80GBで500万?MySQLデータベースの最大テーブルサイズ

サイズスケールの上端では、データの圧縮について考える必要がありますか?テーブルが大きくなりすぎた場合は、テーブルを分割することもできますか?

+0

テーブルが大きくなってもテーブルを分割したくない場合は、パーティションを分割したいだけです。 –

+1

の可能な複製[パフォーマンスが低下し始める前に、MySQLデータベースがどれくらい大きくなる可能性があります](http://stackoverflow.com/questions/1276/how-big-can-a-mysql-database-get-before-performance-starts -to-degrade) – random

答えて

0

データベースのための有効な最大サイズは、通常はオペレーティングシステムによって決定され、特にファイルサイズMySQLサーバのことができるようになりますMySQLサーバ自体ではなく、作成します。これらの制限は、テーブルのサイズ制限で大きな役割を果たします。 MyISAMはInnoDBとは違った働きをします。したがって、どのテーブルもその制限に依存します。

InnoDBを使用する場合は、テーブルサイズを操作するオプションが増えます。この場合、テーブルスペースのサイズを変更することはオプションです。サイズを変更する予定がある場合は、これが最適です。 The table is fullエラーページを見てください。

すべての必要な情報(OS、テーブルの種類、列、データの種類、サイズなど)がわかっているかどうかはわかりませんが、この情報が簡単かどうかはわかりません計算しますが、私はカップルの場合で約1biのレコードを持つ単純なテーブルを見てきましたが、MySQLはあきらめませんでした。

+1

なぜOSはテーブルのサイズを制限しますか? MySQLは単一ファイル内のテーブルのみをサポートできますか?複数のファイルを1つのテーブルにマッピングできるような表スペースの概念はありませんか? –

35

非常に大きな(テラバイト+)MySQLデータベースで作業していました。私たちが持っていた最大のテーブルは、文字通り10億行以上ありました。

それは働いた。 MySQLはほとんどの場合、データを正しく処理していました。それは非常に扱いにくかったです。

データをバックアップして保存するだけで問題になりました。もし必要ならばテーブルを元に戻すのに数日かかるでしょう。

10〜100万行の範囲で多数のテーブルがありました。テーブルへの重要な結合は時間がかかり、永遠にかかるでしょう。だから私たちはテーブルを '歩く'ストアドプロシージャを書いて、 'id'の範囲に対してジョインを処理します。このようにして、一度に10〜100,000行のデータを処理します(IDの1-100,000、100,001-200,000などと結合します)。これは、テーブル全体に参加するよりもはるかに高速でした。

プライマリキーに基づいていない非常に大きなテーブルでもインデックスを使用することははるかに困難です。 Mysqlは、索引を2つの部分に格納します。索引は、主索引以外の索引を主索引の索引として保管します。したがって、索引付けされたルックアップは2つの部分で行われます。まず、MySQLは索引に行き、それから見つけ出す必要のある主キー値を取り出し、主キー索引の2番目のルックアップを実行して、それらの値の場所を見つけます。

これは、非常に大きなテーブル(1〜2百万+行)では、テーブルに対するインデックス作成がより制限的であることを示しています。より少ない、より簡単なインデックスが必要です。また、インデックスに直接ない単純なselect文を実行しても、決して戻ってこない場合があります。文節のインデックスをヒットするか忘れる必要があります。

しかし、すべて言われていることは、実際には機能しました。これらの非常に大きなテーブルでMySQLを使用して計算を行い、正しい答えを得ることができました。

+1

テスト用にこのような巨大なテーブルを得ることができるヒントはありますか?私たちはデータベース管理システムを作成しており、MySQLと一緒にシステムのパフォーマンスをテストしたいと考えています。 – StanE

-1

は、大規模なデータベースのために、このhttp://www.clb4u.com/2013/10/scalability-and-limits-of-mysql.html

サポートを参照してください。私たちは、5000万レコードを含むデータベースでMySQL Serverを使用しています。 200,000のテーブルと約5,000,000,000行のMySQLサーバを使用するユーザも知っています。

+3

リンクのみの回答はしないでください。答えの本質的な部分もここに含めてください。 – Harry

+3

リンクが壊れています。 – dbcb

関連する問題