481 Stimmen

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

Meine MySQL-Datenbank enthält mehrere Tabellen, die verschiedene Speicher-Engines verwenden (insbesondere myisam und innodb). Wie kann ich herausfinden, welche Tabellen welche Engine verwendet wird?

609voto

Greg Punkte 306033

SHOW TABLE STATUS WHERE Name = 'xxx'

Dadurch erhalten Sie (unter anderem) eine Engine Spalte, was Sie ja auch wollen.

298voto

Jocker Punkte 2791

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

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

Ersetzen Sie dbname mit dem Namen Ihrer Datenbank.

59voto

Javier Punkte 58737
SHOW CREATE TABLE <tablename>;

Weniger analysierbar, aber besser lesbar als SHOW TABLE STATUS .

54voto

Oder einfach

show table status;

nur, dass damit alle Tabellen in Ihrer Datenbank aufgelistet werden.

21voto

Evan Donovan Punkte 748

Eine kleine Ergänzung zu Jockers Antwort (ich würde sie 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;

Damit sind MySQL-Views von der Liste ausgeschlossen, die keine Engine haben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X