new-ara-api icon indicating copy to clipboard operation
new-ara-api copied to clipboard

Fix Slow Query

Open retroinspect opened this issue 1 year ago • 0 comments

Sentry에 제보된 Slow Query 2종을 해결한다

문제의 쿼리1

SELECT `core_article`.`id`, `core_article`.`created_at`, `core_article`.`updated_at`,
  `core_article`.`deleted_at`, `core_article`.`title`, `core_article`.`content`,
  `core_article`.`content_text`, `core_article`.`name_type`, `core_article`.`is_content_sexual`,
  `core_article`.`is_content_social`, `core_article`.`hit_count`, `core_article`.`comment_count`,
  `core_article`.`report_count`, `core_article`.`positive_vote_count`,
  `core_article`.`negative_vote_count`, `core_article`.`migrated_hit_count`,
  `core_article`.`migrated_positive_vote_count`, `core_article`.`migrated_negative_vote_count`,
  `core_article`.`created_by_id`, `core_article`.`parent_topic_id`, `core_article`.`parent_board_id`,
  `core_article`.`commented_at`, `core_article`.`url`, `core_article`.`content_updated_at`,
  `core_article`.`hidden_at`, `core_article`.`topped_at`
FROM `core_article`
WHERE (
  `core_article`.`deleted_at` = '0001-01-01 00:00:00.000000' AND
  `core_article`.`parent_board_id` = 1
)
ORDER BY `core_article`.`created_at` DESC
LIMIT 1

문제의 쿼리2

SELECT COUNT(*) AS `__count`
FROM `core_article`
WHERE (
  `core_article`.`deleted_at` = '0001-01-01 00:00:00.000000' AND NOT (`core_article`.`created_by_id` IN (
    SELECT U0.`user_id`
    FROM `core_block` U0
    WHERE (
      U0.`deleted_at` = '0001-01-01 00:00:00.000000' AND U0.`blocked_by_id` = 1
    )
  ) AND `core_article`.`name_type` = 1)
)

retroinspect avatar Sep 21 '23 15:09 retroinspect