Задать вопрос
dzheka3d
@dzheka3d

Как поступить в такой ситуации?

Всем привет! Автомобильный сайт. 70% запросов к БД, на разных страницах, связаны с названием автомобилей. (пример: список комментариев, в котором на против каждого коммента название автомобиля и ссылка на него).
Марки автомобилей хранятся в таблице `brand`, модели в таблице `model`. Для вывода полного названия приходится во всех 70% запросах использовать:
LEFT JOIN `brand` ON `brand`.`id` = `auto`.`brand_id`
LEFT JOIN `model` ON `model`.`id` = `auto`.`model_id`


Правильный ли это подход, либо стоит сохранить два массива марок и моделей в файловый кеш, и подключать везде их к скрипту, а обновлять по мере добавления новых записей в эти таблицы? Много ли я выиграю от этого?
Либо есть более интересный и правильный способ?
  • Вопрос задан
  • 123 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@Draconian
Oracle Developer
Сайт от этого работает медленнее? Сомневаюсь.
Вряд ли у вас в обозримом будущем будут сотни тысяч автомобильных брендов и марок, чтобы такие запросы ощутимо тормозили. С точки зрения реляционной БД здесь ничего страшного нет, в общем, особенно, если сканы идут по индексу.

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

Войдите, чтобы написать ответ

Похожие вопросы