Преобразование простой базы данных MySQL в решение NoSQL - PullRequest
2 голосов
/ 01 июня 2011

У меня очень маленькая база данных MySQL, где в основной таблице около 300 записей, и я иногда добавляю больше.В таблице хранятся местоположения файлов и некоторые метаданные для видео активов, к которым у моих пользователей есть доступ.(название фильма, путь, имя ключевого кадра, название фильма, имя файла и т. д. и т. д.)

Я хотел переместить эту таблицу в решение в памяти, но сейчас я в замешательстве относительно этоговарианты есть, и что на самом деле самый быстрый, легкий вес, лучший удар для доллара.

Redis?MongoDB?Что-то другое?Может ли MySQL работать в памяти?

Я планирую добавить несколько других баз данных для различных проектов.

В этом окне используется CentOS 5.6, 16 ГБ ОЗУ, и я ежедневно получаю около 100 посетителей на мой сайт.

Ответы [ 5 ]

1 голос
/ 03 июня 2011

Первое, что вам нужно спросить себя: почему вы хотите переключиться на базу данных NoSQL?

Ответы могут быть такими: вам нужна большая скорость, вам нужна реплицированная и распределенная система баз данных, вынужна большая масштабируемость для используемого хранилища или репликации.Или, возможно, вы хотите извлечь выгоду из более легкой разработки.

Но из 300 записей я не думаю, что какая-либо, но последняя поможет вам.

И я не думаю, что вы действительно хотитерешение «в памяти».Память означает, что все данные были записаны только в оперативную память, и если вы закроете базу данных, все ваши данные будут потеряны.Если вы действительно этого хотите, то MySQL имеет механизм хранения в памяти.

В противном случае вся база данных будет кэшировать столько памяти, сколько может.И 300 записей, скорее всего, будут полностью в вашем ОЗУ также под MySQL.Вы, вероятно, не получите никаких преимуществ в скорости от переключения на базу данных NoSQL.

Если вы вообще планируете перейти на базу данных NoSQL, я бы предпочел MongoDB.Это смесь из NoSQL и RDBMS, потому что она дает вам мощный язык запросов, почти как SQL.И вы можете отругать его лучше, чем RDBMS.И для меня, программирование будет намного проще против базы данных без схемы.Вы можете масштабировать MongoDB до 1000 серверов.

Но другие базы данных NoSQL обладают гораздо большей масштабируемостью.Если вам нужно больше серверов, то другие базы данных, вероятно, будут лучше.Но вы теряете некоторый способ запрашивать ваши данные.

Если вы обычно планируете переключиться на базу данных NoSQL, я думаю, что MongoDB справится с этим.Другие базы данных NoSQL, вероятно, лучше для определенных случаев, а не для общего использования.

0 голосов
/ 01 июня 2011

С 300 записями вы не увидите каких-либо ощутимых преимуществ при переходе на систему nosql.

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

Ваша база данных крошечная.«Я получаю около 100 посетителей на свой сайт ежедневно» - это довольно бессмысленный показатель, но он подразумевает очень низкий уровень трафика.

16 ГБ ОЗУ - много памяти - это может быть тем, что вам нужно для вашего приложения, если вы обрабатываете много медиа-файлов.

0 голосов
/ 01 июня 2011

Самый простой способ - использовать движок таблиц MySQL MEMORY.Он сохраняет все данные в памяти и удаляет их, когда сервер MySQL перестает работать.

0 голосов
/ 01 июня 2011

Самое простое - просто настроить mysql, чтобы он сохранял все в памяти (чего у вас много).

Смотрите ответы о размере пула буферов здесь Можно ли загрузить базу данных в оперативную память?

При такой маленькой таблице, даже с конфигурацией по умолчанию, она, вероятно, уже имеет в ОЗУ для всех практических целей.

0 голосов
/ 01 июня 2011

Это зависит от того, как вы хотите получить доступ / запросить ваши записи в базе данных.

MongoDB - это хранилище документов, оно делает большую часть того, что может сделать Mysql.Но я не скажу, что MongoDB - это легковесное решение.

Redis - это быстрая база данных ключей / значений в памяти.Но вы можете получить доступ к своим записям только по определенному ключу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...