MySQL 데이터베이스의 Row 개수와 테이블 크기 구하기
MySQL 카테고리의 다른 글
MySQL의 기본 데이터베이스인, INFORMATION_SCHEMA 의 TABLES 테이블에는 각각의 테이블에 대한 정보가 들어있습니다. SELECT 문으로 필요한 정보만 가져와보도록 하겠습니다.
쿼리문
아래의 SQL 쿼리에서 fancy_data 를 원하는 데이터베이스 이름으로 바꿔주기만 하면 됩니다.
SELECT TABLE_NAME "Tables",
    ROUND((TABLE_ROWS / 1000), 3) "Rows (K)",
    AVG_ROW_LENGTH "Row Size (Byte)",
    ROUND((DATA_LENGTH / 1024 / 1024), 3) "Data Size (MB)",
    ROUND((INDEX_LENGTH / 1024 / 1024), 3) "Index Size (MB)",
    ROUND(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024), 3) "Total Size (MB)"
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = "fancy_data"  /* 데이터베이스 이름 */
ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC;
결과

쿼리 설명
SELECT (AS는 생략가능)
SELECT 가져올_데이터 AS "컬럼명", /*** AS는 ***/
    가져올_데이터2 AS "컬럼명2",  /* 생략가능 */
    ...
ROUND
ROUND((123.45678), 3) /* 소수점 3자리 밑에서 반올림 */
  /* -> 123.457 */    /******** 음수도 가능! ********/
FROM, WHERE, ORDER BY
FROM 데이터베이스이름.테이블이름 /* 데이터를 가져올 테이블 */
WHERE 데이터 = 값     /* 조건문 (일치하는 데이터 가져옴) */
ORDER BY 데이터 DESC  /* 데이터 순서로 정렬 (DESC는 내림차순) */
 
      
    
댓글남기기