MySQL에서 테이블의 전체 행 수를 빠르게 확인하는 방법을 알아보기 위해, 먼저 예제 테이블을 만들고 데이터를 삽입한 뒤 조회하는 과정까지 살펴보겠습니다.
1. 테이블 생성하기
테이블을 새로 만들 때는 CREATE 명령어를 사용합니다.
mysql> CREATE table RowCountDemo -> ( -> ID int, -> Name varchar(100) -> ); Query OK, 0 rows affected (0.95 sec)
2. 레코드 삽입하기
생성한 테이블에 INSERT 명령어로 레코드를 추가합니다.
mysql> INSERT into RowCountDemo values(1,'Larry'); Query OK, 1 row affected (0.15 sec) mysql> INSERT into RowCountDemo values(2,'John'); Query OK, 1 row affected (0.13 sec) mysql> INSERT into RowCountDemo values(3,'Bela'); Query OK, 1 row affected (0.15 sec) mysql> INSERT into RowCountDemo values(4,'Jack'); Query OK, 1 row affected (0.11 sec) mysql> INSERT into RowCountDemo values(5,'Eric'); Query OK, 1 row affected (0.19 sec) mysql> INSERT into RowCountDemo values(6,'Rami'); Query OK, 1 row affected (0.49 sec) mysql> INSERT into RowCountDemo values(7,'Sam'); Query OK, 1 row affected (0.14 sec) mysql> INSERT into RowCountDemo values(8,'Maike'); Query OK, 1 row affected (0.77 sec) mysql> INSERT into RowCountDemo values(9,'Rocio'); Query OK, 1 row affected (0.13 sec) mysql> INSERT into RowCountDemo values(10,'Gavin'); Query OK, 1 row affected (0.19 sec)
3. 저장된 레코드 조회하기
SELECT 문으로 테이블에 저장된 전체 레코드를 확인할 수 있습니다.
mysql> SELECT * FROM RowCountDemo;
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+------+-------+ | ID | Name | +------+-------+ | 1 | Larry | | 2 | John | | 3 | Bela | | 4 | Jack | | 5 | Eric | | 6 | Rami | | 7 | Sam | | 8 | Maike | | 9 | Rocio | | 10 | Gavin | +------+-------+ 10 rows in set (0.00 sec)
행 수를 빠르게 세는 두 가지 방법
테이블의 행 개수를 빠른 속도로 집계하려면 아래 두 가지 쿼리를 활용할 수 있습니다.
방법 1: COUNT(*) 사용
가장 널리 쓰이는 방식으로, COUNT(*)는 테이블의 모든 행을 대상으로 개수를 반환합니다.
mysql> SELECT count(*) FROM RowCountDemo;
실행 결과는 다음과 같습니다.
+----------+ | count(*) | +----------+ | 10 | +----------+ 1 row in set (0.00 sec)
방법 2: COUNT(FOUND_ROWS()) 사용
FOUND_ROWS() 함수를 활용하는 방식으로, 이 역시 동일하게 전체 행 수를 반환합니다.
mysql> SELECT count(found_rows()) FROM RowCountDemo;
실행 결과는 다음과 같습니다.
+---------------------+ | count(found_rows()) | +---------------------+ | 10 | +---------------------+ 1 row in set (0.00 sec)
두 쿼리 모두 동일한 결과인 10을 반환하며, 실행 시간 역시 거의 차이가 없습니다. 일반적으로는 가독성과 호환성이 좋은 COUNT(*)를 사용하는 것이 권장됩니다.