이전에는 생성 된 모든 데이터베이스에서 다음을 사용합니다.
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>;