MySQL에서 특정 테이블의 평균 행 길이를 확인하고 싶다면 INFORMATION_SCHEMA.TABLES 뷰의 AVG_ROW_LENGTH 컬럼을 활용하면 됩니다. 이 값은 데이터 파일 크기를 행 수로 나눈 평균값으로, 테이블 저장 공간을 분석하거나 성능을 최적화할 때 유용하게 사용됩니다.
기본 쿼리 문법
평균 행 길이를 조회하는 기본 문법은 다음과 같습니다.
SELECT AVG_ROW_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '테이블명';
실습 예제
먼저 예제로 사용할 테이블을 생성해 보겠습니다.
mysql> create table DemoTable
(
StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentName varchar(100)
);
Query OK, 0 rows affected (0.90 sec)INSERT 명령어를 사용해 테이블에 레코드를 삽입합니다.
mysql> insert into DemoTable(StudentName) values('John');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable(StudentName) values('Larry');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable(StudentName) values('Sam');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(StudentName) values('Mike');
Query OK, 1 row affected (0.15 sec)SELECT 명령어로 테이블에 저장된 레코드를 확인합니다.
mysql> select *from DemoTable;
위 쿼리는 다음과 같은 결과를 출력합니다.
+-----------+-------------+ | StudentId | StudentName | +-----------+-------------+ | 1 | John | | 2 | Larry | | 3 | Sam | | 4 | Mike | +-----------+-------------+ 4 rows in set (0.00 sec)
평균 행 길이 조회하기
이제 information_schema.tables를 조회하여 DemoTable의 평균 행 길이를 확인해 보겠습니다.
mysql> SELECT AVG_ROW_LENGTH FROM information_schema.tables WHERE TABLE_NAME = 'DemoTable';
실행 결과는 다음과 같습니다.
+----------------+ | AVG_ROW_LENGTH | +----------------+ | 4096 | +----------------+ 1 row in set (0.11 sec)
참고 사항
AVG_ROW_LENGTH 값은 InnoDB 페이지 구조의 특성상 실제 데이터 크기보다 클 수 있습니다. 또한 여러 데이터베이스에 동일한 이름의 테이블이 존재할 수 있으므로, 정확한 조회를 위해서는 TABLE_SCHEMA 조건을 함께 추가하는 것이 좋습니다.
SELECT AVG_ROW_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '데이터베이스명' AND TABLE_NAME = '테이블명';
이렇게 하면 원하는 데이터베이스의 테이블 정보만 정확하게 필터링하여 평균 행 길이를 확인할 수 있습니다.