데이터베이스에 사용 된 스토리지 엔진을 아는 방법은 무엇입니까? dbname.* TO ‘dbuser’@’localhost’; 그런 다음 MyISAM

이전에는 생성 된 모든 데이터베이스에서 다음을 사용합니다.

mysql -u root -p
CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_bin;
GRANT ALL ON dbname.* TO 'dbuser'@'localhost';

그런 다음 MyISAM 또는 InnoDB에 대해 생각하지 않고 데이터베이스를 사용하십시오.

데이터베이스에 사용 된 스토리지 엔진을 아는 방법은 무엇입니까?



답변

다음과 같이 테이블별로 확인할 수 있습니다.

USE <database>;
SHOW TABLE STATUS\G

다음 줄을 따라 출력을 얻습니다.

root@localhost/database> show table status\G
*************************** 1. row ***************************
           Name: tablename
         Engine: MyISAM
        Version: 10
     Row_format: Fixed
           Rows: 101
 Avg_row_length: 70
    Data_length: 7070
Max_data_length: 19703248369745919
   Index_length: 2048
      Data_free: 0
 Auto_increment: 1004
    Create_time: 2009-12-07 20:15:53
    Update_time: 2010-11-10 21:55:01
     Check_time: NULL
      Collation: latin1_swedish_ci
       Checksum: NULL
 Create_options:
        Comment:


답변

활성 기본 엔진을 보려면 ‘show engine’명령을 사용하십시오.

기본 엔진이 활성화되도록 my.cnf 파일의 [mysqld] 섹션에 default-storage-engine = InnoDB를 추가하십시오.

‘show create table table_name’명령을 사용하여 테이블에서 기본 엔진을보십시오.


답변

이 쿼리는 모든 InnoDB 테이블과 해당 데이터베이스를 MySQL로 나열합니다.

SELECT table_name, table_schema
FROM information_schema.tables
WHERE engine = 'InnoDB';

모든 테이블과 해당 스토리지 엔진을 나열 할 수도 있습니다.

SELECT table_name, table_schema, engine
FROM information_schema.tables;


답변

특정 테이블의 엔진 이름을 얻으려면

use <database_name>
show table status like '<table_name>';

엔진을 바꾸려면

alter table <table_name> engine <engine_name>;


답변