Ma base de données MySQL contient plusieurs tables utilisant différents moteurs de stockage .__ (en particulier myisam et innodb). Comment savoir quelles tables utilisent Avec quel moteur?
SHOW TABLE STATUS WHERE Name = 'xxx'
Cela vous donnera (entre autres choses) une colonne Engine
, qui correspond à vos souhaits.
Pour afficher une liste de toutes les tables d'une base de données et de leurs moteurs, utilisez cette requête SQL:
SELECT TABLE_NAME,
ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'dbname';
Remplacez dbname
par le nom de votre base de données.
SHOW CREATE TABLE <tablename>;
Moins analysable mais plus lisible que SHOW TABLE STATUS
.
ou juste
show table status;
juste que cela listera toutes les tables de votre base de données.
Un peu d'un tweak à la réponse de Jocker (je posterais comme commentaire, mais je n'ai pas encore assez de karma):
SELECT TABLE_NAME, ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'database' AND ENGINE IS NOT NULL;
Cela exclut les vues MySQL de la liste, qui n’ont pas de moteur.
SHOW CREATE TABLE <tablename>\G
formatera beaucoup mieux par rapport à la sortie de
SHOW CREATE TABLE <tablename>;
L'astuce \G
est également utile à retenir pour de nombreuses autres requêtes/commandes.
mysqlshow -i <database_name>
affichera les informations pour toutes les tables d'une base de données spécifique.
mysqlshow -i <database_name> <table_name>
le fera juste pour une table spécifique.
Si vous utilisez MySQL Workbench, vous pouvez cliquer avec le bouton droit de la souris sur la table et sélectionner "modifier la table".
Dans cette fenêtre, vous pouvez voir votre moteur de table et également le modifier.
Si vous êtes un utilisateur linux:
Pour afficher les moteurs de toutes les tables de toutes les bases de données sur un serveur mysql, sans tables 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)
Vous pourriez aimer cela, si vous êtes sur Linux, au moins.
Va ouvrir toutes les informations pour toutes les tables dans less
, appuyez sur -S
pour couper des lignes trop longues.
Exemple de sortie:
--------------------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
.
.
.
Encore une autre manière, peut-être la plus courte pour obtenir le statut d’un ensemble de tables unique ou compatible:
SHOW TABLE STATUS LIKE 'table';
Vous pouvez ensuite utiliser les opérateurs LIKE par exemple:
SHOW TABLE STATUS LIKE 'field_data_%';
allez dans la base de données information_schema où vous trouverez la table 'tables' puis sélectionnez-la;
Mysql> use information_schema; Mysql> select nom_table, moteur dans les tables;
Si vous êtes unGUIet que vous voulez juste le trouver dans PhpMyAdmin , choisissez le tableau de votre choix et allez dans l'onglet Operations
>> Table options
>> Storage Engine
. même changer à partir de là en utilisant la liste des options déroulantes.
PS: Ce guide est basé sur la version 4.8 de PhpMyAdmin. Impossible de garantir le même chemin pour les versions très anciennes.