Управляемая базой данных маршрутизация в Rails 3 - PullRequest
1 голос
/ 18 августа 2011

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

Допустим, у меня есть система продуктов.Я знаю все о to_param и как оно работает ( благодаря Райану Бейтсу около миллиарда лет назад) и даже о том, что я могу вывести идентификатор из параметра, если я статически установлю его на самой модели.

Проблема в том, что я хочу извлечь из него идентификатор для поисковой оптимизации и других целей.Я не могу поставить его на саму модель Product, потому что слаг имеет тенденцию меняться с изменением продукта и т. Д. Поэтому мне нужно что-то держать слизни, например, модель Route.У меня есть таблица со столбцом product_id и столбцом слаг.Слизень проиндексирован, поэтому Rails может быстро найти его.

У меня есть несколько проблем, но:

  1. Это даже лучший способ сделать это?
  2. Есть ли способ кэширования слагов в памяти, чтобы каждый раз не возвращаться к базе данных?
  3. Будет ли моя база данных иметь огромный успех, если она просто ищет простуюслизняк в таблице который индексируется?Полагаю, мне нужно будет самому провести тестирование производительности, но мне любопытно, измерял ли это кто-нибудь раньше.

Спасибо!

1 Ответ

0 голосов
/ 19 августа 2011

Использование http://memcached.org/

Бесплатная и открытая, высокопроизводительная система кэширования объектов с распределенной памятью, универсальная по своей природе, но предназначенная для ускорения динамических веб-приложений за счет снижения нагрузки на базу данных.Memcached - это хранилище значений ключей в памяти для небольших порций произвольных данных (строк, объектов) из результатов вызовов базы данных, вызовов API или рендеринга страницы.Memcached прост, но мощен.Его простая конструкция обеспечивает быстрое развертывание, простоту разработки и решает многие проблемы, связанные с большими кэшами данных.Его API доступен для большинства популярных языков.

Рубиновый камень http://rubygems.org/gems/memcache

Вы можете выбрать любой камень здесь http://rubygems.org/searchutf8=%E2%9C%93&query=memcache

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