Как уменьшить количество запросов к базе данных?
У меня есть база данных MySQL с отношениями между таблицами.
Табличные автомобили имеют внешние ключи к следующим таблицам:
- мировые бренды
- модель
- поколения
- модификация двигателя
Модели имеют внешний ключ к брендам, поколения имеют внешний ключ к моделям, engine_modifications к поколениям.
Когда я пытаюсь визуализировать все поколения для определенной модели, количество запросов к БД огромно.
public function show($id) { $model = Model::findOrFail($id); return view('models.show')->withModel($model); }
Что я уже пробовал:
Я подумал, что это связано с проблемой n+1, и попытался указать на эти отношения:
$model = Model::with( 'generations', 'brand', 'generations.engineModifications', 'generations.model', 'generations.cars' )->findOrFail($id);
К сожалению, это тоже не решает мою проблему. Количество запросов одинаково для каждой модели.
Maciej Los
Проверить это: Объединение наборов данных: слияние и объединение | Python Data Science Handbook[^]