반응형
아래와 같이 접속해있는 MYSQL 인스턴스의 각 논리 데이터베이스 별 오브젝트의 수 정보가 필요할 때가 있다.
- 디비 마이그레이션 후 오브젝트 수 비교
- 디비 매니징 등등
아래의 쿼리로 해당 내용을 한 번에 조회할 수 있다.
+--------------+-----------+-----------+-------------+-------------+
| table_schema | table_cnt | event_cnt | routine_cnt | trigger_cnt |
+--------------+-----------+-----------+-------------+-------------+
| ktw | 47 | NULL | NULL | NULL |
+--------------+-----------+-----------+-------------+-------------+
논리 데이터베이스별 오브젝트 정보 조회 쿼리
SELECT
t. *,
events.event_cnt,
routines.routine_cnt,
triggers.trigger_cnt
FROM
(
SELECT
table_schema,
COUNT(table_name) AS table_cnt
FROM
information_schema.tables
GROUP BY
table_schema
) t
LEFT JOIN (
SELECT
trigger_schema,
COUNT(trigger_name) AS trigger_cnt
FROM
information_schema.triggers
GROUP BY
trigger_schema
) triggers ON t.table_schema = triggers.trigger_schema
LEFT JOIN (
SELECT
event_schema,
COUNT(event_schema) AS event_cnt
FROM
information_schema.events
GROUP BY
event_schema
) events ON t.table_schema = events.event_schema
LEFT JOIN (
SELECT
routine_schema,
COUNT(routine_name) AS routine_cnt
FROM
information_schema.routines
GROUP BY
routine_schema
) routines ON t.table_schema = routines.routine_schema
WHERE
t.table_schema NOT IN (
'information_schema',
'db_helper',
'mysql',
'performance_schema',
'sys'
);
반응형