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

수천 개의 테이블이 있는 MySQL 데이터베이스에서 4개의 무작위 테이블을 선택하는 방법

개요

수천 개의 테이블이 존재하는 MySQL 데이터베이스에서 4개의 무작위(random) 테이블을 선택하려면 ORDER BY RAND() 절을 활용하면 됩니다. 이 방법은 INFORMATION_SCHEMA.TABLES에서 테이블 목록을 조회한 뒤, 결과를 무작위로 정렬하고 원하는 개수만큼 제한하여 반환하는 방식입니다.

기본 문법

무작위 테이블을 선택하기 위한 기본적인 SQL 문법은 다음과 같습니다.

select TABLE_NAME AS anyAliasName
from INFORMATION_SCHEMA.TABLES
where TABLE_SCHEMA = 'yourDatabaseName'
order by rand()
limit yourLimitNumber;

문법 설명

  • INFORMATION_SCHEMA.TABLES: 현재 MySQL 서버에 있는 모든 데이터베이스와 테이블 정보를 담고 있는 시스템 뷰입니다.
  • TABLE_SCHEMA: 대상 데이터베이스(스키마) 이름을 지정하는 조건입니다.
  • ORDER BY RAND(): 조회된 행들을 무작위 순서로 정렬합니다.
  • LIMIT: 가져올 레코드의 개수를 지정합니다. 4개의 테이블이 필요하므로 LIMIT 4를 사용합니다.

실전 예제

이제 위 문법을 실제로 적용하여 'web'이라는 데이터베이스에서 4개의 무작위 테이블을 선택해 보겠습니다. 다음은 실행할 쿼리입니다.

mysql> select TABLE_NAME AS Random4TableName
   from INFORMATION_SCHEMA.TABLES
   where TABLE_SCHEMA = 'web'
   order by rand()
   limit 4;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+------------------+
| Random4TableName |
+------------------+
| demotable474     |
| demotable313     |
| demotable452     |
| demotable382     |
+------------------+
4 rows in set (0.20 sec)

참고 사항

실행할 때마다 결과는 매번 달라지며, 이것이 바로 무작위 선택의 핵심입니다. 또한 테이블 수가 매우 많은 경우 ORDER BY RAND()는 전체 행을 정렬해야 하므로 성능에 영향을 줄 수 있습니다. 단순 조회용으로는 충분하지만, 대량 데이터를 자주 처리해야 한다면 성능 최적화 방안을 함께 고려하는 것이 좋습니다.