6

私はMnesiaをより伝統的なデータベースと比較しようとしています。

私が理解しているように、Mnesiaのテーブルは次の場所に配置できます(Mnesiaのメモリ消費を参照)。

  • ram_copies-テーブルはに格納されるetsため、ACIDのように耐久性はありません。
  • disc_copies-テーブルはとに配置されetsdetsいるので、テーブルは使用可能なメモリより大きくすることはできませんか?また、テーブルが断片化されている場合、データベースは使用可能なメモリより大きくすることはできませんか?
  • disc_only_copies-テーブルが配置detsされているため、メモリにキャッシュがなく、パフォーマンスが低下します。また、テーブルのサイズはのサイズに制限されているdetsか、テーブルを断片化する必要があります。

したがって、RAMからの読み取りのパフォーマンスとディスクへの書き込みの耐久性が必要な場合、MySQLやPostgreSQLなどの従来のRDBMSと比較して、テーブルのサイズは非常に制限されます。

Mnesiaは従来のRDBMSを置き換えることを意図していないことは知っていますが、大きなRDBMSとして使用できますか、それとも別のデータベースを探す必要がありますか?

私が使用するサーバーは、メモリ量が制限された約512MBのVPSですが、データベースのパフォーマンスを向上させたいと考えています。

Mnesiadisc_copiesの他のタイプのテーブルは、私が理解しているように制限されていますか?データベースを部分的にメモリに、完全にディスクにコピーすることはできませんか?

4

1 に答える 1

2

さまざまなタイプのテーブルに対するMnesiaデータベースのストレージ容量については、この前のSOの質問で説明しました。

Mnesiaデータベースのストレージ容量はどれくらいですか?

素晴らしい答えがすでに利用できるところ。

明らかに(しかし、あなたはすでにそれを見たと思います)公式ドキュメントは次の場所で入手できます:

http://www.erlang.org/doc/man/mnesia.html

また、Mnesia FAQから読む:

11.5 Mnesiaにはどのくらいのデータを保存できますか?

Detsはファイルオフセットに32ビット整数を使用するため、(現時点で)可能な最大のmnesiaテーブルは4Gbです。

実際には、この制限に達する前に、マシンはクロールするまで遅くなります。

最後に、Mnesiaテーブルは断片化できます。これはあちこちで議論されてます。

これらは私の2pです。

于 2010-04-08T09:28:31.283 に答える