web-dev-qa-db-ja.com

特定のテーブルのMySQLエンジンタイプを確認するにはどうすればいいですか?

私のMySQLデータベースには、異なるストレージエンジン(特にmyisamとinnodb)を使用しているいくつかのテーブルが含まれています。どのテーブルがどのエンジンを使用しているかを知るにはどうすればよいですか?

356
oneself

SHOW TABLE STATUS WHERE Name = 'xxx'

これは(とりわけ)Engineカラムをあなたに与えるでしょう、それはあなたが望むものです。

461
Greg

データベース内のすべてのテーブルとそのエンジンのリストを表示するには、次のSQLクエリを使用します。

SELECT TABLE_NAME,
       ENGINE
FROM   information_schema.TABLES
WHERE  TABLE_SCHEMA = 'dbname';

dbnameを自分のデータベース名に置き換えます。

217
Jocker
SHOW CREATE TABLE <tablename>;

SHOW TABLE STATUSよりも解析は簡単ですが読みやすくなります。

47
Javier

あるいは単に

show table status;

データベースのすべてのテーブルがリストされるだけです。

39
MArk Guadalupe

Jockerの回答に対するちょっとした微調整(コメントとして投稿する予定だが、まだ十分なカルマがない)

SELECT TABLE_NAME, ENGINE
  FROM information_schema.TABLES
 WHERE TABLE_SCHEMA = 'database' AND ENGINE IS NOT NULL;

これは、エンジンを持たないMySQLビューをリストから除外します。

13
Evan Donovan
SHOW CREATE TABLE <tablename>\G

の出力と比較してはるかにきれいにフォーマットします

SHOW CREATE TABLE <tablename>;

\Gトリックは他の多くの問い合わせやコマンドを覚えておくのにも役に立ちます。

9
Nicholas
mysqlshow -i <database_name>

特定のデータベースのすべてのテーブルに関する情報を表示します。

mysqlshow -i <database_name> <table_name> 

特定のテーブルに対してのみ行います。

7
magic

MySQL Workbenchを使用している場合は、テーブルを右クリックして「alter table」を選択できます。

そのウィンドウであなたはあなたのテーブルエンジンを見ることができ、またそれを変更することができます。

3
T30

あなたがLinuxユーザーなら:

テーブルinformation_schemamysqlperformance_schemaなしで、mysqlサーバー上の全データベースの全テーブルのエンジンを表示するには:

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 

.
.
.
2
sjas

database_nameからテーブルステータスを表示します。

それは言及されたデータベースからすべてのテーブルをリストします。
出力例

sample output of mysql db

テーブルの状態を表示します。ここで、name = your_desired_table_name;

上記の表で使用されているストレージエンジンが表示されます。

1
zahid

さらに別の方法では、おそらくテーブルの単一または一致したセットのステータスを取得するための最短の方法です。

SHOW TABLE STATUS LIKE 'table';

そうすると、LIKE演算子を使うことができます。

SHOW TABLE STATUS LIKE 'field_data_%';
1
David Thomas

information_schemaデータベースに移動して、 'tables'テーブルを見つけて選択します。

MySQL> use information_schema; MySQL> select table_name、テーブルからのエンジン。

0
harsha vardhan

あなたがGUIの人で、それをPhpMyAdminで探したいのであれば、あなたの選んだ表と頭を選んでください。 Operationsタブ>> Table options >> Storage Engineの上に。ドロップダウンオプションリストを使ってそこから変更することもできます。

シモンズ:このガイドはPhpMyAdminのバージョン4.8に基づいています。非常に古いバージョンで同じパスを保証することはできません。

0
mytuny