Question Comment connaître le moteur de stockage utilisé d'une base de données?


Auparavant, sur chaque base de données créée, j'utilise:

mysql -u root -p
CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_bin;
GRANT ALL ON dbname.* TO 'dbuser'@'localhost';

puis utilisez la base de données sans penser à MyISAM ou à InnoDB

Comment connaître le moteur de stockage utilisé d'une base de données?


10
2018-03-08 16:40


origine




Réponses:


Vous pouvez vérifier par table comme ceci:

USE <database>;
SHOW TABLE STATUS\G

vous obtiendrez une sortie dans ce sens:

root@localhost/database> show table status\G
*************************** 1. row ***************************
           Name: tablename
         Engine: MyISAM
        Version: 10
     Row_format: Fixed
           Rows: 101
 Avg_row_length: 70
    Data_length: 7070
Max_data_length: 19703248369745919
   Index_length: 2048
      Data_free: 0
 Auto_increment: 1004
    Create_time: 2009-12-07 20:15:53
    Update_time: 2010-11-10 21:55:01
     Check_time: NULL
      Collation: latin1_swedish_ci
       Checksum: NULL
 Create_options: 
        Comment: 

12
2018-03-08 16:54



comme vous le savez, toutes les tables d’une base de données (en plus de l’écriture d’un script) SHOW TABLE pour chaque table de la base de données)? - voretaq7
@ voretaq7 "SHOW TABLE STATUS" affiche toutes les tables par défaut. - Coops
cool - je suis un postgres donc tout ce matériel de MySQL et de multiples moteurs de stockage m'est étrange :-) - voretaq7


Utilisez la commande 'show engine' pour afficher le moteur actif par défaut

Ajoutez default-storage-engine = InnoDB dans la section [mysqld] du fichier my.cnf pour que le moteur par défaut soit actif.

Utilisez la commande 'show create table table_name' pour afficher le moteur par défaut dans la table.


5
2018-03-08 17:00



SHOW ENGINE me donne l'erreur 1064 (42000). - mstrap
show engines; - w00t


Cette requête répertorie toutes les tables InnoDB et leurs bases de données dans MySQL:

SELECT table_name, table_schema 
FROM information_schema.tables 
WHERE engine = 'InnoDB';

Vous pouvez également lister toutes les tables et leurs moteurs de stockage:

SELECT table_name, table_schema, engine
FROM information_schema.tables;

2
2018-03-08 17:29



J'ai essayé la deuxième requête - j'ai l'erreur: ERROR 1146 (42S02): Table 'information_scheme.tables' doesn't exist  (sur MySQL 5.6.37) - nnyby


Pour obtenir le nom du moteur pour une table spécifique

use <database_name>
show table status like '<table_name>';

Changer de moteur

alter table <table_name> engine <engine_name>;

0
2017-08-16 04:34