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

JDBC를 사용해 MySQL 테이블의 스토리지 엔진을 확인하는 방법

MySQL에서 특정 테이블이 어떤 스토리지 엔진(InnoDB, MyISAM 등)으로 생성되었는지 확인하고 싶다면 information_schema.tables 뷰의 ENGINE 컬럼을 조회하면 됩니다. JDBC 애플리케이션에서도 일반적인 SELECT 쿼리와 동일한 방식으로 손쉽게 스토리지 엔진 정보를 가져올 수 있습니다.

1. 테스트용 테이블 생성

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name varchar(20),
-> Age int,
-> CountryName varchar(20)
-> );
Query OK, 0 rows affected (0.63 sec)

2. JDBC로 스토리지 엔진 조회하기

아래는 JDBC를 사용해 테이블의 스토리지 엔진을 조회하는 Java 코드 예제입니다. 핵심은 information_schema.tables에서 table_name 조건으로 engine 값을 select 하는 것입니다.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class GetTheStorageEngine {
public static void main(String[] args) {
String hostURL = "jdbc:mysql://localhost:3306/web?useSSL=false";
Connection con = null;
Statement stmt = null;
try {
con = DriverManager.getConnection(hostURL, "root", "123456");
stmt = con.createStatement();
String yourTablename = "DemoTable";
ResultSet resultSet = stmt.executeQuery(
"select engine from information_schema.tables where table_name='" + yourTablename + "';");
resultSet.next();
System.out.println("The engine is=" + resultSet.getString(1));
} catch (Exception e) {
e.printStackTrace();
}
}
}

3. 실행 결과

위 코드를 실행하면 다음과 같이 해당 테이블의 스토리지 엔진 이름이 출력됩니다.

The engine is=InnoDB

참고 사항

  • information_schema.tables: MySQL이 제공하는 메타데이터 뷰로, 모든 테이블의 엔진 종류, 행 수, 생성 시간 등 다양한 정보를 담고 있습니다.
  • SHOW TABLE STATUS: MySQL 클라이언트에서는 SHOW TABLE STATUS LIKE 'DemoTable'; 명령으로도 동일한 엔진 정보를 확인할 수 있습니다.
  • 보안 팁: 실무 환경에서는 DB 접속 정보를 코드에 하드코딩하지 말고 설정 파일이나 환경 변수로 관리하는 것이 안전합니다. 또한 테이블명을 문자열 연결로 직접 넣기보다 PreparedStatement를 사용하면 SQL 인젝션 위험을 줄일 수 있습니다.