Meine MySQL-Datenbank enthält mehrere Tabellen mit verschiedenen Speicher-Engines (speziell Myisam und Innodb). Wie kann ich herausfinden, welche Tabellen mit welcher Engine sind?Wie kann ich den MySQL-Engine-Typ für eine bestimmte Tabelle überprüfen?
Antwort
SHOW TABLE STATUS WHERE Name = 'xxx'
Dies wird Ihnen geben (unter anderem) eine Engine
Spalte, das ist, was Sie wollen.
SHOW CREATE TABLE <tablename>;
Weniger analysierbar, aber besser lesbar als SHOW TABLE STATUS
.
oder nur
show table status;
nur, dass dies alle Tabellen in Ihrer Datenbank LLIST.
Aus irgendeinem Grund gibt 0 Zeilen in meinem Fall zurück ... –
@NikolaiSamteladze, Haben Sie Tabellen in der ausgewählten db? – Pacerier
Um eine Liste aller Tabellen in einer Datenbank und deren Motoren zu zeigen, diese SQL-Abfrage verwenden:
SELECT TABLE_NAME,
ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'dbname';
ersetzen dbname
mit Ihren Datenbanknamen.
Bit eines zwicken Jocker Antwort (ich würde als Kommentar posten, aber ich habe nicht genug Karma noch):
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'database' AND ENGINE IS NOT NULL;
Dies schließt MySQL Ansichten aus der Liste, die nicht über ein Motor.
SHOW CREATE TABLE <tablename>\G
wird es viel schöner formatiert verglichen mit dem Ausgang des
SHOW CREATE TABLE <tablename>;
Der \G
Trick ist auch nützlich für viele andere Abfragen/Befehle zu erinnern.
\ G Hack nur unter cli mysql ist – gaRex
gehe zur information_schema datenbank dort findest du 'tables' table dann wähle es aus;
Mysql> verwenden information_schema; Mysql> select Tabellenname, Engine aus Tabellen;
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.
Dies beantwortet die Frage nicht, da die Engines für alle Tabellen angezeigt werden. Der Initiator der Frage suchte nach Informationen zu einer bestimmten Tabelle. – Tass
Noch eine andere Art und Weise, vielleicht der kürzeste zu bekommen Status eines einzelnen oder aufeinander abgestimmten Satz von Tabellen:
SHOW TABLE STATUS LIKE 'table';
Sie können dann LIKE verwenden, zB:
SHOW TABLE STATUS LIKE 'field_data_%';
Wenn Sie ein sind linux-Benutzer:
Um die Motoren für alle Tabellen für alle Datenbanken auf einem mySQL-Server zu zeigen, 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)
Sie könnten dies lieben, wenn Sie auf Linux zumindest sind.
Öffnen Sie alle Informationen für alle Tabellen in less
, drücken Sie -S
, um überlange Linien zu hacken.
Beispiel Ausgabe:
--------------------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
.
.
.
Wenn Sie die MySQL Workbench verwenden, können Sie die Tabelle der rechten Maustaste und wählen Sie ‚Tabelle ändern‘.
In diesem Fenster können Sie Ihre Tabelle Engine sehen und auch ändern.
- 1. Wie kann ich den auto_increment Wert für eine Tabelle anzuzeigen
- 2. Wie mache ich DDL-Trigger für eine bestimmte Tabelle?
- 3. Wie kann ich erzwingen, dass eine Abfrage keinen Index für eine bestimmte Tabelle verwendet?
- 4. Wie blende ich den Benachrichtigungsfehler für eine bestimmte Variable aus?
- 5. Wie behebe ich eine HTML-Tabelle auf eine bestimmte Größe
- 6. Wie kann ich den Status des Telefons für eine bestimmte eingehende Nummer in den Ruhemodus ändern?
- 7. Überprüfen Referrer für bestimmte URL
- 8. jQuery alternative Tabelle Zeile Farben für eine bestimmte Tabelle
- 9. Überprüfen Sie eine bestimmte Branche?
- 10. Zend_Db_Table, wie ich für eine bestimmte Spalte
- 11. Wie kann ich die Anzahl der Regionen für eine bestimmte HBase-Tabelle finden?
- 12. Wie kann ich die Seitengeschwindigkeit für eine bestimmte URL deaktivieren?
- 13. Wie kann ich eine bestimmte Version brauen?
- 14. Wie kann ich eine bestimmte URL umschreiben?
- 15. Wie sollte ich eine Hashtabelle für eine bestimmte Population optimieren?
- 16. Eine Möglichkeit, bestimmte Filterinhalte zu überprüfen
- 17. Wie kann ich überprüfen, ob eine Datei älter als eine bestimmte Zeit mit PowerShell ist?
- 18. Wie kann ich eine bestimmte Version einer Datensatzzeile erhalten?
- 19. Wie update wp_usermeta Tabelle für eine bestimmte ID
- 20. Kann ich eine Bedingung für eine Variable überprüfen
- 21. Wie kann ich überprüfen, ob eine bestimmte öffentliche Schlüsseldatei mit git verwendet wird?
- 22. Wie kann ich eine PHP-Abfrage haben, die eine bestimmte Tabelle basierend auf einer Auswahlliste auswählt?
- 23. Wie kann ich den Internetzugang für eine bestimmte IP in meinem lokalen Netzwerk in Python blockieren?
- 24. Wie kann ich den SATA-Kanal für eine bestimmte Festplatte ermitteln?
- 25. Wie kann ich den Vordergrund für eine bestimmte Zelle von DataGrid ändern C# wpf
- 26. Wie kann ich den IME-Modus auf bestimmte TextBox einstellen?
- 27. Kann ich MySQL ft_min_word_len für eine bestimmte Datenbank oder Tabelle ändern?
- 28. Wie kann ich überprüfen, ob ein Benutzer eine bestimmte Rolle in JSP hat?
- 29. Wie kann ich nur eine bestimmte Domäne mit Python crawlen?
- 30. Wie kann ich überprüfen, ob ein Perl-Skalar einen Verweis auf eine bestimmte Subroutine enthält?
Wenn meine Tabelle beschädigt ist, es einfach ist zeigt Motor = NULL und hat einen „Kommentar“ mir zu sagen, um die Tabelle zu reparieren. Bevor ich jedoch weiß, wie ich den Tisch reparieren kann, muss ich den Motor kennen (ich bin noch nicht so weit gekommen, um ehrlich zu sein.) Daher war @ Jockers Kommentar unten viel hilfreicher für mich. – harperville
@Greg, Sollten wir diese oder Jockers Lösung verwenden? – Pacerier
@ Pacerier - Beide funktionieren gut. Der Unterschied besteht darin, dass diese Lösung die Informationen für eine Tabelle liefert, während Jockers Lösung den Motortyp für alle Tabellen in einer Datenbank anzeigt (und gleichzeitig etwas lesbarer ist). – kramer65