Только для чтения, довольно небольшая база данных - способы оптимизации? - PullRequest
3 голосов
/ 03 сентября 2010

У меня есть следующий дизайн. Существует пул идентичных рабочих процессов (максимум 64 из них, в среднем 15), которые используют общую базу данных только для чтения. База данных составляет около 25 МБ. В настоящее время она реализована в виде базы данных MySQL, и все работники подключаются к ней. Пока это работает, но я бы хотел:

  • исключить межпроцессную передачу данных - i. е. выполнить SQL в процессе
  • постоянно хранит данные в памяти (я имею в виду, 25 МБ!)
  • не загружать указанные 25 МБ отдельно в каждый процесс (т.е. как-то хранить его в общей памяти)

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

Доступ осуществляется через довольно ванильные SQL SELECT. Нет подзапросов, нет соединений. LIKE условия - самая модная особенность, когда-либо использовавшаяся. Индексы, однако, очень необходимы.

Вопрос - может ли кто-нибудь придумать библиотеку базы данных, которая обеспечила бы цели, изложенные выше?

Ответы [ 2 ]

1 голос
/ 03 сентября 2010

Вы можете использовать SQLite с его базой данных в памяти .

0 голосов
/ 03 сентября 2010

Я бы посмотрел на обращение с кешем. MEMCACHED легко и очень быстро, как все в памяти. Вентилятор MongoDB или аналогичный также будет быстрее, хотя на основе диска.

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