Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 특정 테이블의 행 수(레코드 개수) 확인하는 방법

MySQL에서 데이터베이스에 존재하는 특정 테이블의 행 수를 확인해야 하는 경우가 자주 있습니다. 이 글에서는 예제 테이블을 직접 만들고, INFORMATION_SCHEMA를 활용해 해당 테이블의 행 수를 조회하는 방법을 단계별로 살펴보겠습니다.

1. 예제 테이블 생성하기

먼저 CREATE TABLE 문을 사용하여 테스트용 테이블을 생성합니다.

mysql> create table DemoTable
    -> (
    -> LastName varchar(100)
    -> );
Query OK, 0 rows affected (0.68 sec)

2. 샘플 데이터 삽입하기

INSERT 명령어를 사용해 테이블에 여러 개의 레코드를 추가합니다.

mysql> insert into DemoTable values('Smith');
Query OK, 1 row affected (0.15 sec)

mysql> insert into DemoTable values('Miller');
Query OK, 1 row affected (0.13 sec)

mysql> insert into DemoTable values('Taylor');
Query OK, 1 row affected (0.14 sec)

mysql> insert into DemoTable values('Brown');
Query OK, 1 row affected (0.29 sec)

3. 저장된 전체 레코드 조회하기

SELECT 문으로 테이블에 저장된 모든 레코드를 확인합니다.

mysql> select *from DemoTable;

출력 결과

+----------+
| LastName |
+----------+
| Smith    |
| Miller   |
| Taylor   |
| Brown    |
+----------+
4 rows in set (0.00 sec)

총 4개의 행이 정상적으로 저장된 것을 확인할 수 있습니다.

4. INFORMATION_SCHEMA로 테이블의 행 수 조회하기

MySQL은 INFORMATION_SCHEMA.TABLES라는 시스템 뷰를 제공합니다. 이곳에는 데이터베이스 내 모든 테이블의 메타데이터가 저장되어 있으며, TABLE_ROWS 컬럼을 통해 각 테이블의 대략적인 행 수를 확인할 수 있습니다.

다음은 'web' 데이터베이스에 있는 'DemoTable' 테이블의 행 수를 조회하는 쿼리입니다.

mysql> select table_rows from INFORMATION_SCHEMA.tables
    -> where table_schema='web' and table_name='DemoTable';

출력 결과

+------------+
| TABLE_ROWS |
+------------+
|          4 |
+------------+
1 row in set (0.16 sec)

참고: COUNT(*)와의 차이점

INFORMATION_SCHEMA.TABLESTABLE_ROWS 값은 InnoDB 스토리지 엔진에서 통계 정보 기반의 근사치(approximate value)입니다. 따라서 실제 행 수와 약간의 오차가 있을 수 있습니다.

정확한 행 수가 필요하다면 다음과 같이 COUNT(*)를 사용하는 것이 좋습니다.

mysql> select count(*) from DemoTable;

대용량 테이블에서 빠르게 근사치를 확인할 때는 INFORMATION_SCHEMA를, 정확한 개수가 필요할 때는 COUNT(*)를 활용하면 상황에 맞게 효율적으로 작업할 수 있습니다.