In case you have your own slow SQL query, you can optimize it automatically here.
For the query above, the following recommendations will be helpful as part of the SQL tuning process.
You'll find 3 sections below:
ALTER TABLE `Ingredients` ADD INDEX `ingredients_idx_ingredientid` (`IngredientID`);
ALTER TABLE `Recipe_Ingredients` ADD INDEX `recipe_ingredients_idx_recipeid` (`RecipeID`);
SELECT
DISTINCT Recipes.RecipeTitle
FROM
Recipes
INNER JOIN
Recipe_Ingredients
ON Recipes.RecipeID = Recipe_Ingredients.RecipeID
INNER JOIN
Ingredients
ON Recipe_Ingredients.IngredientID = Ingredients.IngredientID
GROUP BY
Recipe_Ingredients.Amount,
Recipes.RecipeTitle
HAVING
Recipe_Ingredients.Amount = max(Recipe_Ingredients.Amount)
AND Recipes.RecipeTitle IN (
SELECT
Recipes.RecipeTitle
FROM
Recipes
INNER JOIN
Recipe_Ingredients
ON Recipes.RecipeID = Recipe_Ingredients.RecipeID
INNER JOIN
Ingredients
ON Recipe_Ingredients.IngredientID = Ingredients.IngredientID
GROUP BY
Recipes.RecipeTitle,
Ingredients.IngredientName
HAVING
Ingredients.IngredientName IN (
'garlic'
)
)
ORDER BY
NULL