私の MySQL データベースには、異なるストレージ エンジン (具体的には myisam と innodb) を使用するいくつかのテーブルが含まれています。どのテーブルがどのエンジンを使用しているかを調べるにはどうすればよいですか?
14 に答える
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
ます。
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
トリックは、他の多くのクエリ/コマンドでも覚えておくと便利です。
mysqlshow -i <database_name>
特定のデータベースのすべてのテーブルの情報を表示します。
mysqlshow -i <database_name> <table_name>
特定のテーブルに対してのみそうします。
さらに別の方法として、単一または一致するテーブルのセットのステータスを取得する最短の方法は次のとおりです。
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
.
.
.