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 `campaign` ADD INDEX `campaign_idx_is_deleted_status_id` (`is_deleted`,`status`,`id`);
ALTER TABLE `campaign_category` ADD INDEX `campaign_category_idx_id` (`id`);
ALTER TABLE `reserved_reviews` ADD INDEX `reserved_reviews_idx_camping_id_user_id` (`camping_id`,`user_id`);
ALTER TABLE `user_reviews` ADD INDEX `user_reviews_idx_user_id` (`user_id`);
ALTER TABLE `user_reviews` ADD INDEX `user_reviews_idx_campaign_id` (`campaign_id`);
SELECT
*,
c.id c_id
FROM
campaign c
JOIN
campaign_category cc
ON c.campaign_type = cc.id
WHERE
c.is_deleted = 0
AND c.status = 1
AND c.id NOT IN (
SELECT
user_reviews.campaign_id
FROM
user_reviews
WHERE
user_reviews.user_id = 4
)
AND c.amt_req > (
SELECT
COUNT(reserved_reviews.id)
FROM
reserved_reviews
WHERE
reserved_reviews.camping_id = c.id
AND reserved_reviews.user_id != 4
) + (
SELECT
COUNT(user_reviews.id)
FROM
user_reviews
WHERE
user_reviews.campaign_id = c.id
)