Матричное хранилище в Rails? - PullRequest
4 голосов
/ 27 декабря 2010

Мне интересно, как лучше всего обрабатывать огромную матрицу в Rails 3. Эта матрица будет хранить расстояния между точками (это симметрично).

Точки можно добавлять в любое время, чтобы матрица могла часто обновляться.

Я вижу два пути:

  • хранение значений в базе данных и получение расстояний с помощью запросов в БД (легко, но немного медленно)
  • сохранение значений в файле и помещение этого файла в кеш (может быть сложно обновить)

Мысли

PS: я упаковываю это для новой версии моего гема gmaps4rails (посвященного упрощению gmaps для пользователей rails)

1 Ответ

1 голос
/ 28 декабря 2010

Если вам нужно хранить уникальную и большую матрицу, я бы рекомендовал сделать это в отдельной таблице (столбец / строка / значение).Он будет масштабироваться лучше, чем с файлом, и:

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

Если у вас возникают проблемы с производительностью при создании матрицыВырасти, взгляни на библиотеку activerecord-import .Это поможет вам пакетно вставить данные в матрицу.

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