質問

MySQLクラスター6にNDBクラスターを実装したいのですが、最低200万のレコードを持つ非常に巨大なデータ構造のためにやりたいと思います。

NDBクラスターの実装に制限があるかどうかを知りたいです。たとえば、RAMサイズ、データベースの数、またはNDBクラスターのデータベースのサイズ。

役に立ちましたか?

解決

200万のデータベース?私はあなたが「列」を意味したことを提案します。

とにかく、制限に関して:留意すべき最も重要なことの1つは、NDB/MySQLクラスターが汎用データベースではないことです。最も注目すべきは、操作に参加するだけでなく、サブクエリと範囲のオペリティション(今から1週間前から1週間前に作成された注文のようなクエリ)も、予想よりもかなり遅くなる可能性があります。これは、データが複数のノードに分散されているという事実に一部起因しています。いくつかの改善が行われましたが、参加パフォーマンスはまだ非常に残念です。

一方、多くの(好ましくは小さい)同時トランザクション(通常、単一の行の更新/挿入/削除ルックアップ)に対処する必要がある場合は、すべてのデータをメモリに保持するために手荷物を維持するために、非常に重要ですスケーラブルでパフォーマンスのあるソリューション。

なぜクラスターが欲しいのか自問する必要があります。 99,999%の可用性が追加されていない場合を除いて、現在持っている通常のデータベースが必要な場合は、失望する可能性があります。確かにMySQLクラスターは素晴らしい可用性と稼働時間を提供できますが、アプリのワークロードはThtingsクラスターにはあまり適していない場合があります。さらに、別の高可用性ソリューションを使用して、従来のデータベースの稼働時間を増やすことができます。

ところで - ドキュメントによると、これが制限のリストです。 http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-limitations.html

しかし、あなたが何をするにしても、クラスターを試して、あなたに良いかどうかを確認してください。 MySQLクラスターは「MySQL + 5ナイン」ではありません。試してみるとわかります。

他のヒント

NDBクラスターには、2つのタイプのストレージオプションが付属しています。

1.メモリストレージ。 2.ディスクストレージ。

メモリデータストレージとバージョン7.4(MySQL 5.6)のように導入されたNDB以降、ディスクストレージをサポートし始めました。

現在のバージョン7.5(MySQL 5.7)はディスクストレージをサポートしています。この場合、データはディスクに存在し、制限は利用可能なディスクストレージスペースに依存するため、サイズの制約はありません。
ディスクストレージ構成 - https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-disk-data-symlinks.html

NDBクラスターのメモリストレージも非常に成熟しており、管理ノードconfig.iniファイルでメモリ使用量を定義できます。例-DataMemory = 3072M IndexMemory = 384M

平均テーブルでは(列に保存されているデータに依存)、合計DBサイズは1GB未満である必要があり、簡単に構成できます。

注 - 私自身の実装では、NDBのパフォーマンスがテーブルの行数を増やし、1つのパフォーマンスチャレンジに直面しました。高負荷の並行性の下で、読み取りは増加する列の数で劣化します。完全なテーブルスキャンに行かないようにして、句述語の場合は十分な場合は十分に提供してください。適切なパフォーマンスの場合、クエリパターンに従ってセカンダリインデックスを適切に定義します。セカンダリインデックスを定義すると再びメモリ消費が増加するため、それに応じてクエリパターンとメモリリソースを計画します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top