Где в Мнезии расположены столы? - PullRequest
6 голосов
/ 08 апреля 2010

Я пытаюсь сравнить Mnesia с более традиционными базами данных.

Насколько я понимаю, таблицы в Mnesia могут быть расположены по адресу (см. Потребление памяти в Mnesia ):

  • ram_copies - таблицы хранятся в ets, поэтому срок службы не такой, как в ACID.
  • disc_copies - таблицы расположены на ets и dets, поэтому таблица не может быть больше доступной памяти? А если таблица фрагментирована, база данных не может быть больше доступной памяти?
  • disc_only_copies - таблицы расположены dets, поэтому нет кеширования в памяти и хуже производительность. И размер таблицы ограничен размером dets или таблица должна быть фрагментирована.

Поэтому, если я хочу, чтобы производительность чтения из ОЗУ была выше, а продолжительность записи на диск была длительной, то размер таблиц очень ограничен по сравнению с традиционной СУБД, такой как MySQL или PostgreSQL.

Я знаю, что Mnesia не предназначена для замены традиционных СУБД, но может ли она использоваться как большая СУБД или мне нужно искать другую базу данных?

Сервер, который я буду использовать, представляет собой VPS с ограниченным объемом памяти, около 512 МБ , но мне нужна хорошая производительность базы данных.

Являются ли disc_copies и другие типы таблиц в Mnesia настолько ограниченными, насколько я понял? Разве база данных не может быть частично в памяти и полная копия на диске?

1 Ответ

2 голосов
/ 08 апреля 2010

Емкость базы данных Mnesia для различных типов таблиц обсуждалась в этом предыдущем вопросе SO:

Какова емкость базы данных Mnesia?

, где отличный ответ уже доступен.

Очевидно (но я думаю, что вы уже видели это), официальный документ доступен по адресу:

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

Также чтение из Mnesia FAQ :

11.5 Сколько данных можно хранить в Mnesia?

Dets использует 32-битные целые числа для файла смещения, поэтому максимально возможный Таблица Mnesia (на данный момент) составляет 4Gb.

На практике ваша машина замедлится до ползти, прежде чем вы достигнете этого ограничение.

Наконец, таблицы Mnesia могут быть фрагментированными . Это обсуждается здесь и там .

Это мои 2р.

...