여러분께,
카테고리별 크기를 주기적으로 추적하여 관리자가 합의한 크기를 초과하지 않도록 확인하기 위해 SQL 코드를 실행하는 데 도움이 필요합니다.
다음 코드를 실행했지만 결과가 바이트 단위로 표시되며, GB 또는 MB 단위로 표시되도록 해야 합니다.
-- Query to estimate the data size for each category in MB and GB
SELECT
c.id AS category_id,
c.name AS category_name,
COUNT(DISTINCT t.id) AS topics_count,
COUNT(p.id) AS posts_count,
ROUND(SUM(LENGTH(p.raw)) / 1024 / 1024, 2) AS total_text_size_mb,
ROUND(SUM(LENGTH(p.raw)) / 1024 / 1024 / 1024, 4) AS total_text_size_gb,
ROUND(COALESCE(SUM(u.filesize), 0) / 1024 / 1024, 2) AS total_uploads_size_mb,
ROUND(COALESCE(SUM(u.filesize), 0) / 1024 / 1024 / 1024, 4) AS total_uploads_size_gb,
ROUND((COALESCE(SUM(u.filesize), 0) + SUM(LENGTH(p.raw))) / 1024 / 1024, 2) AS total_category_size_mb,
ROUND((COALESCE(SUM(u.filesize), 0) + SUM(LENGTH(p.raw))) / 1024 / 1024 / 1024, 4) AS total_category_size_gb
FROM
categories c
LEFT JOIN
topics t ON t.category_id = c.id
LEFT JOIN
posts p ON p.topic_id = t.id
LEFT JOIN
post_custom_fields pcf ON pcf.post_id = p.id AND pcf.name = 'uploads'
LEFT JOIN
uploads u ON u.id = pcf.value::int
WHERE
c.id > 0 -- Exclude system categories
AND t.deleted_at IS NULL -- Exclude deleted topics
AND p.deleted_at IS NULL -- Exclude deleted posts
GROUP BY
c.id, c.name
ORDER BY
total_category_size_mb DESC
다음 형식으로 표시되도록 도움이 필요합니다:
