특정 테이블의 MySQL 엔진 유형을 확인하려면 어떻게 해야 합니까?
MySQL 데이터베이스에는 다양한 스토리지 엔진(특히 myisam 및 innodb)을 사용하는 여러 테이블이 포함되어 있습니다.어떤 테이블이 어떤 엔진을 사용하고 있는지 어떻게 알 수 있습니까?
SHOW TABLE STATUS WHERE Name = 'xxx'
이것은 (다른 것 중에서) 너에게 줄 것이다.Engine
원하는 컬럼입니다.
데이터베이스 내의 모든 테이블과 해당 엔진의 목록을 표시하려면 다음 SQL 쿼리를 사용합니다.
SELECT TABLE_NAME,
ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'dbname';
교체하다dbname
데이터베이스 이름을 지정합니다.
SHOW CREATE TABLE <tablename>;
해석능력은 떨어지지만 보다 읽기 쉽다.SHOW TABLE STATUS
.
또는 다음을 실행합니다.
show table status;
데이터베이스의 모든 테이블과 관련 세부 정보가 나열됩니다.
Jocker의 답변에 약간의 변화가 있다(댓글을 달았지만 아직 충분한 업보가 없다).
SELECT TABLE_NAME, ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'database' AND ENGINE IS NOT NULL;
엔진이 없는 MySQL 뷰는 목록에서 제외됩니다.
SHOW CREATE TABLE <tablename>\G
출력에 비해 훨씬 더 좋은 포맷을 할 것이다.
SHOW CREATE TABLE <tablename>;
그\G
trick은 다른 많은 쿼리/트래픽에 대해서도 기억해 두면 편리합니다.
database_name에서 테이블 상태를 표시합니다.
지정된 데이터베이스의 모든 테이블이 나열됩니다.
출력 예
테이블 상태를 표시합니다. 여기서 name=your_display_table_name;
상기 표에서 사용되는 스토리지 엔진이 표시됩니다.
mysqlshow -i <database_name>
는 특정 데이터베이스의 모든 테이블에 대한 정보를 보여줍니다.
mysqlshow -i <database_name> <table_name>
특정 테이블에 대해서만 이 작업을 수행합니다.
MySQL Workbench를 사용하는 경우 테이블을 마우스 오른쪽 버튼으로 클릭하고alter table
.
이 창에는 Engine 테이블이 표시되고 변경할 수도 있습니다.
다른 방법으로는 단일 테이블세트 또는 일치하는 테이블세트의 상태를 취득하는 가장 짧은 방법입니다.
SHOW TABLE STATUS LIKE 'table';
그런 다음 LIKE 연산자를 다음과 같이 사용할 수 있습니다.
SHOW TABLE STATUS LIKE 'field_data_%';
Linux 사용자인 경우:
테이블 없이 mysql 서버의 모든 데이터베이스에 대한 모든 테이블의 엔진을 표시하려면information_schema
,mysql
,performance_schema
:
less < <({ for i in $(mysql -e "show databases;" | cat | grep -v -e Database-e information_schema -e mysql -e performance_schema); do echo "--------------------$i--------------------"; mysql -e "use $i; show table status;"; done } | column -t)
적어도 Linux 를 사용하고 있는 경우는, 이것을 마음에 들어 할 수 있습니다.
의 모든 테이블에 대한 모든 정보를 엽니다.less
,누르다-S
길게 자르다
출력 예:
--------------------information_schema--------------------
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time C
CHARACTER_SETS MEMORY 10 Fixed NULL 384 0 16434816 0 0 NULL 2015-07-13 15:48:45 NULL N
COLLATIONS MEMORY 10 Fixed NULL 231 0 16704765 0 0 NULL 2015-07-13 15:48:45 NULL N
COLLATION_CHARACTER_SET_APPLICABILITY MEMORY 10 Fixed NULL 195 0 16357770 0 0 NULL 2015-07-13 15:48:45 NULL N
COLUMNS MyISAM 10 Dynamic NULL 0 0 281474976710655 1024 0 NULL 2015-07-13 15:48:45 2015-07-13 1
COLUMN_PRIVILEGES MEMORY 10 Fixed NULL 2565 0 16757145 0 0 NULL 2015-07-13 15:48:45 NULL N
ENGINES MEMORY 10 Fixed NULL 490 0 16574250 0 0 NULL 2015-07-13 15:48:45 NULL N
EVENTS MyISAM 10 Dynamic NULL 0 0 281474976710655 1024 0 NULL 2015-07-13 15:48:45 2015-07-13 1
FILES MEMORY 10 Fixed NULL 2677 0 16758020 0 0 NULL 2015-07-13 15:48:45 NULL N
GLOBAL_STATUS MEMORY 10 Fixed NULL 3268 0 16755036 0 0 NULL 2015-07-13 15:48:45 NULL N
GLOBAL_VARIABLES MEMORY 10 Fixed NULL 3268 0 16755036 0 0 NULL 2015-07-13 15:48:45 NULL N
KEY_COLUMN_USAGE MEMORY 10 Fixed NULL 4637 0 16762755 0
.
.
.
만약 당신이 GUI 사용자이고 단지 PhpMyAdmin에서 그것을 찾고 싶다면, 당신이 선택한 테이블을 선택하고,Operations
탭 >>Table options
>>Storage Engine
드롭다운 옵션목록을 사용하여 변경할 수도 있습니다.
PS: 이 가이드는 PhpMyAdmin 버전 4.8을 기반으로 합니다.이전 버전의 경우 동일한 경로를 보장할 수 없습니다.
이전 엔트리의 예와 별도로 다음과 같이 표준 쿼리를 사용하여 information_schema db에서 가져올 수도 있습니다.
use information_schema;
select NAME from INNODB_TABLES where NAME like "db_name%";
information_database로 이동하여 'table'을 찾은 후 선택합니다.
Mysql > information_schema; Mysql > 테이블에서 table_name, engine을 선택합니다.
언급URL : https://stackoverflow.com/questions/213543/how-can-i-check-mysql-engine-type-for-a-specific-table
'programing' 카테고리의 다른 글
심플한 Java 인메모리 캐시를 찾고 있다 (0) | 2022.10.10 |
---|---|
phpMyAdmin을 통해 원격 사용자 허용 (0) | 2022.10.10 |
파일을 다운로드하지 않은 원격 파일 크기 (0) | 2022.10.10 |
Laravel PHP 명령을 찾을 수 없습니다. (0) | 2022.10.10 |
NodeJs Mysql 오류: ER_PARSE_ERROR 여러 테이블에 삽입 (0) | 2022.10.10 |