Risposte:
SHOW TABLE STATUS WHERE Name = 'xxx'
Questo ti darà (tra le altre cose) una Engine
colonna, che è quello che vuoi.
show full columns from t1
?
Per mostrare un elenco di tutte le tabelle in un database e i relativi motori, utilizzare questa query SQL:
SELECT TABLE_NAME,
ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'dbname';
Sostituisci dbname
con il nome del tuo database.
SELECT ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = '<database_name>' AND TABLE_NAME = '<table_name>'
COUNT(*)
e GROUP BY
.
o solo
show table status;
solo che questo elencherà tutte le tabelle nel tuo database.
Un po 'di modifica alla risposta di Jocker (vorrei pubblicare come commento, ma non ho ancora abbastanza karma):
SELECT TABLE_NAME, ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'database' AND ENGINE IS NOT NULL;
Ciò esclude le viste MySQL dall'elenco, che non hanno un motore.
mysqlshow -i <database_name>
mostrerà le informazioni per tutte le tabelle di un database specifico.
mysqlshow -i <database_name> <table_name>
lo farà solo per una tabella specifica.
Ancora un altro modo, forse il più breve per ottenere lo stato di un set di tabelle singolo o abbinato:
SHOW TABLE STATUS LIKE 'table';
È quindi possibile utilizzare gli operatori LIKE ad esempio:
SHOW TABLE STATUS LIKE 'field_data_%';
Se sei un utente linux:
Per mostrare i motori per tutte le tabelle per tutti i database su un server MySQL, senza tabelle 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)
Potresti amarlo, almeno se sei su Linux.
Aprirà tutte le informazioni per tutte le tabelle less
, premere -S
per tagliare linee troppo lunghe.
Esempio di output:
--------------------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
.
.
.
vai al database information_schema lì troverai la tabella 'tables' quindi selezionala;
Mysql> usa information_schema; Mysql> seleziona table_name, motore dalle tabelle;
Se sei un ragazzo della GUI e vuoi solo trovarlo in PhpMyAdmin , allora scegli il tavolo che preferisci e vai nella Operations
scheda >> Table options
>> Storage Engine
. Puoi anche cambiarlo da lì utilizzando l'elenco delle opzioni a discesa.
PS: questa guida si basa sulla versione 4.8 di PhpMyAdmin. Non posso garantire lo stesso percorso per versioni molto vecchie.