MySQL DB 사이즈 증가량 추이
이벤트 스케쥴러를 통해 테이블+인덱스 증가량 추이를 산정
1. 증가량 추이를 위한 생성 쿼리
-- 사이즈 집계 테이블 생성
CREATE TABLE zz_size_sum (
yyyymmdd VARCHAR(8) NOT NULL COMMENT '년월일',
table_schema VARCHAR(64) NOT NULL DEFAULT '' COMMENT '스키마명',
table_name VARCHAR(64) NOT NULL DEFAULT '' COMMENT '테이블명',
SIZE_BYTES BIGINT(21) UNSIGNED NOT NULL COMMENT '사이즈(데이터+인덱스)',
PRIMARY KEY (yyyymmdd, table_schema, table_name)
) COMMENT='사이즈집계';
-- 2가지 방식(매주, 매일)으로 집계 이벤트 작성 (각 환경에 맞게 설정)
-- 1. 매주 토요일 사이즈 집계 이벤트 설정
DELIMITER $$
CREATE EVENT IF NOT EXISTS size_sum_scheduler
ON SCHEDULE
EVERY 1 WEEK
STARTS '2022-09-07 00:00:00'
ENABLE
COMMENT "사이즈(데이터+인덱스) 집계 스케쥴러"
DO
BEGIN
INSERT INTO zz_size_sum
SELECT DATE_FORMAT(NOW(), '%Y%m%d') yyyymmdd
, table_schema
, table_name
, IFNULL(data_length, 0) + IFNULL(index_length, 0) AS "size(bytes)"
FROM information_schema.tables
WHERE table_schema in ('스키마명')
AND table_type = 'BASE TABLE'
ORDER BY table_schema, table_name;
COMMIT;
END$$
DELIMITER;
-- 2. 매일 사이즈 집계 이벤트 설정
DELIMITER $$
CREATE EVENT IF NOT EXISTS size_sum_scheduler
ON SCHEDULE
EVERY 1 DAY
STARTS '2022-09-07 00:00:00'
ENABLE
COMMENT "사이즈(데이터+인덱스) 집계 스케쥴러"
DO
BEGIN
INSERT INTO zz_size_sum
SELECT DATE_FORMAT(NOW(), '%Y%m%d') yyyymmdd
, table_schema
, table_name
, IFNULL(data_length, 0) + IFNULL(index_length, 0) AS "size(bytes)"
FROM information_schema.tables
WHERE table_schema in ('스키마명')
AND table_type = 'BASE TABLE'
ORDER BY table_schema, table_name;
COMMIT;
END$$
DELIMITER;
-- 등록된 스케쥴러 확인
SELECT *
FROM information_schema.events
WHERE event_name = 'size_sum_scheduler';
-- 스케쥴러 삭제
DROP EVENT size_sum_scheduler;
2. 스키마별 월별, 일별 증가량 추이 쿼리
-- 일별 증가량 추이
SELECT yyyymmdd
, table_schema
, ROUND(SUM(size_bytes)/1024/1024,2) MB
FROM zz_size_sum
GROUP BY yyyymmdd, table_schema
ORDER BY yyyymmdd, table_schema;
-- 월별 증가량 추이
SELECT left(yyyymmdd, 6) yyyymm
, table_schema
, ROUND(SUM(size_bytes)/1024/1024,2) MB
FROM zz_size_sum
GROUP BY left(yyyymmdd, 6), table_schema
ORDER BY yyyymm, table_schema;
반응형
'Database > MySQL' 카테고리의 다른 글
MySQL initcap Function (0) | 2022.09.02 |
---|---|
MySQL Utility MYSQLDIFF 사용법 (Schema 비교) (0) | 2022.09.01 |
댓글