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 `categories` ADD INDEX `categories_idx_id` (`id`);
ALTER TABLE `category_user` ADD INDEX `category_user_idx_user_id` (`user_id`);
ALTER TABLE `files` ADD INDEX `files_idx_id` (`id`);
ALTER TABLE `locations` ADD INDEX `locations_idx_id` (`id`);
ALTER TABLE `products` ADD INDEX `products_idx_updated_at` (`updated_at`);
SELECT
products_id,
userid,
users_and_products.slug,
users_and_products.city,
products_updated_at,
(SELECT
GROUP_CONCAT(categories.name)
FROM
categories
JOIN
category_user
ON categories.id = category_user.category_id
WHERE
category_user.user_id = userid) AS list
FROM
(SELECT
products.id AS products_id,
products.updated_at AS products_updated_at,
products.creator_id AS products_creator_id
FROM
products
ORDER BY
products.updated_at DESC LIMIT 50) AS products
JOIN
(
SELECT
users.id AS userid,
files.slug AS slug,
locations.city
FROM
users
LEFT JOIN
files
ON users.file_id = files.id
LEFT JOIN
locations
ON users.location_id = locations.id
) AS users_and_products
ON products.products_creator_id = users_and_products.userid LIMIT 50