Я разрабатываю базу данных, в которой хранятся большие наборы научных данных. Типичный сценарий использования состоит в том, что порядка 5 ГБ новых данных будет записываться в базу данных каждый день; 5 ГБ также будут удаляться каждый день. Общий размер базы данных составит около 50 ГБ. Сервер, на котором я работаю, не сможет сохранить весь набор данных в памяти.
Я структурировал базу данных таким образом, что основная таблица данных представляет собой просто хранилище ключей / значений, состоящее из уникального идентификатора и значения.
Запросы обычно содержат около 100 последовательных значений, например. SELECT Value WHERE ID BETWEEN 7000000 AND 7000100;
В настоящее время я использую MySQL / MyISAM, и эти запросы занимают порядка 0,1 - 0,3 секунды, но недавно я понял, что MySQL, вероятно, не оптимальное решение для того, что в основном представляет собой большое хранилище ключей / значений.
Прежде чем я начну выполнять большую работу по установке нового программного обеспечения и переписыванию всей базы данных, я хотел получить приблизительное представление о том, увижу ли я значительное повышение производительности при использовании базы данных NoSQL (например, Tokyo Tyrant, Cassandra, MongoDB) вместо MySQL для этих типов поисков.
Спасибо