2010-09-10 15 views

Respuesta

4

Puede usar SHOW CREATE TABLE y buscar la pieza ENGINE en la respuesta.

SHOW CREATE TABLE users; 

Ejemplo:

CREATE TABLE innodb_table (id int, value int) ENGINE=INNODB; 
CREATE TABLE myisam_table (id int, value int) ENGINE=MYISAM; 
CREATE TABLE default_table (id int, value int); 

Resultado para innodb_table:

SHOW CREATE TABLE innodb_table; 
+--------------+----------------------------------------------------------------------------------------------------------------------------------+ 
| Table  | Create Table                              | 
+--------------+----------------------------------------------------------------------------------------------------------------------------------+ 
| innodb_table | CREATE TABLE `innodb_table` (
    `id` int(11) DEFAULT NULL, 
    `value` int(11) DEFAULT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 | 
+--------------+----------------------------------------------------------------------------------------------------------------------------------+ 
1 row in set (0.00 sec) 

Resultado para myisam_table:

SHOW CREATE TABLE myisam_table; 
+--------------+----------------------------------------------------------------------------------------------------------------------------------+ 
| Table  | Create Table                              | 
+--------------+----------------------------------------------------------------------------------------------------------------------------------+ 
| myisam_table | CREATE TABLE `myisam_table` (
    `id` int(11) DEFAULT NULL, 
    `value` int(11) DEFAULT NULL 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 | 
+--------------+----------------------------------------------------------------------------------------------------------------------------------+ 
1 row in set (0.00 sec) 

Resultado para default_table:

SHOW CREATE TABLE default_table; 
+---------------+-----------------------------------------------------------------------------------------------------------------------------------+ 
| Table   | Create Table                              | 
+---------------+-----------------------------------------------------------------------------------------------------------------------------------+ 
| default_table | CREATE TABLE `default_table` (
    `id` int(11) DEFAULT NULL, 
    `value` int(11) DEFAULT NULL 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 | 
+---------------+-----------------------------------------------------------------------------------------------------------------------------------+ 
1 row in set (0.00 sec) 
+0

-1: esta es una manera inútil y costosa de conocer el motor de almacenamiento. –

+1

@Andrew: ¿Cuánto cuesta? ... Técnicamente su respuesta es probablemente mejor, pero la respuesta de 'SHOW CREATE TABLE' no solo es más fácil de leer (en mi opinión), sino también más corta de escribir. –

+3

+1. Esta es probablemente la forma más común y fácil de recordar de verificar el motor de almacenamiento, aunque sea un poco "ruidoso". – wuputah

37

Puede usar SHOW TABLE STATUS para ver la información de la tabla.

SHOW TABLE STATUS WHERE `Name` = 'my_table'; 

simplemente marque el valor de la columna de Engine en el conjunto de datos devuelto a saber cuál es el motor de la mesa está utilizando.

16
SELECT ENGINE 
FROM INFORMATION_SCHEMA.TABLES 

WHERE TABLE_NAME='your_table_name' 
AND TABLE_SCHEMA='your_database_name'; 
-- or use TABLE_SCHEMA=DATABASE() if you have a default one. 
Cuestiones relacionadas