it-swarm.com.de

Wie kann ich den MySQL-Engine-Typ für eine bestimmte Tabelle überprüfen?

Meine MySQL-Datenbank enthält mehrere Tabellen, die unterschiedliche Speicher-Engines verwenden Wie kann ich herausfinden, welche Tabellen mit welcher Engine verwendet werden sollen?

345
oneself

SHOW TABLE STATUS WHERE Name = 'xxx'

Dadurch erhalten Sie (unter anderem) eine Engine-Spalte, die Sie benötigen.

445
Greg

Verwenden Sie diese SQL-Abfrage, um eine Liste aller Tabellen in einer Datenbank und ihrer Engines anzuzeigen:

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

Ersetzen Sie dbname durch Ihren Datenbanknamen.

216
Jocker
SHOW CREATE TABLE <tablename>;

Weniger analysierbar, aber lesbarer als SHOW TABLE STATUS.

47
Javier

oder nur 

show table status; 

nur das listet alle Tabellen in Ihrer Datenbank auf.

38
MArk Guadalupe

Ein bisschen Tweak to Jockers Antwort (ich würde es als Kommentar posten, aber ich habe noch nicht genug Karma)

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

Dies schließt MySQL-Ansichten von der Liste aus, die keine Engine haben.

13
Evan Donovan
SHOW CREATE TABLE <tablename>\G

wird es viel schöner formatieren im Vergleich zur Ausgabe von

SHOW CREATE TABLE <tablename>;

Der \G-Trick kann auch für viele andere Abfragen/Befehle verwendet werden.

9
Nicholas
mysqlshow -i <database_name>

zeigt die Informationen für alle Tabellen einer bestimmten Datenbank an.

mysqlshow -i <database_name> <table_name> 

wird dies nur für eine bestimmte Tabelle tun.

7
magic

Wenn Sie die MySQL Workbench verwenden, können Sie mit der rechten Maustaste auf die Tabelle klicken und 'alter table' auswählen.

In diesem Fenster können Sie Ihre Table Engine sehen und auch ändern.

3
T30

Wenn Sie ein Linux-Benutzer sind:

So zeigen Sie die Engines für alle Tabellen für alle Datenbanken auf einem MySQL-Server an, ohne Tabellen 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)

Vielleicht lieben Sie das, wenn Sie zumindest unter Linux sind.

Öffnet alle Informationen für alle Tabellen in less, drücken Sie -S, um zu lange Zeilen zu hacken.

Beispielausgabe: 

--------------------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

tabellenstatus aus Datenbankname anzeigen;

Es werden alle Tabellen aus der genannten Datenbank aufgelistet.
Beispielausgabe

 sample output of mysql db

zeigt den Status der Tabelle an, wobei name = Ihr_desired_table_name ist.

Es wird die von der genannten Tabelle verwendete Speicher-Engine angezeigt.

0
zahid

Ein anderer Weg, vielleicht der kürzeste, um den Status einer einzelnen oder übereinstimmenden Tabelle zu erhalten:

SHOW TABLE STATUS LIKE 'table';

Sie können dann beispielsweise LIKE-Operatoren verwenden:

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

gehen Sie zur Datenbank information_schema. Dort finden Sie die Tabelle 'Tables' und wählen Sie diese aus.

Mysql> use information_schema; Mysql> select table_name, Engine aus Tabellen;

0
harsha vardhan

Wenn Sie einGUIguy sind und es einfach in PhpMyAdmin suchen möchten, wählen Sie die gewünschte Tabelle aus und gehen Sie über den Tab Operations >> Table options >> Storage Engine. Sie können Ändern Sie es sogar von dort aus mithilfe der Dropdown-Liste.

PS: Dieses Handbuch basiert auf der Version 4.8 von PhpMyAdmin. Ich kann nicht den gleichen Pfad für ältere Versionen garantieren.

0
mytuny