Mi base de datos MySQL contiene varias tablas que usan diferentes motores de almacenamiento (específicamente myisam e innodb). ¿Cómo puedo averiguar qué tablas son usando qué motor?¿Cómo puedo verificar el tipo de motor MySQL para una tabla específica?
Respuesta
SHOW TABLE STATUS WHERE Name = 'xxx'
esto le dará (entre otras cosas) una columna de Engine
, que es lo que desea.
SHOW CREATE TABLE <tablename>;
menos analizable, pero más legible que SHOW TABLE STATUS
.
o simplemente
show table status;
simplemente que esto LLIST todas las tablas en la base de datos.
Por alguna razón, devuelve 0 filas en mi caso ... –
@NikolaiSamteladze, ¿Tienes tablas en el db seleccionado? – Pacerier
Para mostrar una lista de todas las tablas de una base de datos y sus motores, utilice esta consulta SQL:
SELECT TABLE_NAME,
ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'dbname';
Reemplazar dbname
con su nombre de base de datos.
poco de un pellizco a la respuesta del Jocker (que iba a publicar como un comentario, pero no tienen suficiente karma aún):
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'database' AND ENGINE IS NOT NULL;
Esto excluye vistas MySQL de la lista, que no tienen un motor.
SHOW CREATE TABLE <tablename>\G
se formatearlo mucho mejor en comparación a la salida del
SHOW CREATE TABLE <tablename>;
El \G
truco también es útil recordar para muchas otras consultas/comandos.
\ G hack es sólo bajo MySQL cli – gaRex
ir a la base de datos information_schema allí encontrará la tabla 'tablas' y luego seleccionarla;
Mysql> use information_schema; Mysql> seleccionar nombre_tabla, motor de tablas;
mysqlshow -i <database_name>
mostrará la información para todas las tablas de una base de datos específica.
mysqlshow -i <database_name> <table_name>
lo haremos solo para una tabla específica.
Esto no responde a la pregunta porque muestra los motores para todas las tablas. El iniciador de la pregunta buscaba información con respecto a una tabla específica. – Tass
Sin embargo, otra manera, tal vez el más corto para obtener el estado de un solo o combinado conjunto de tablas:
SHOW TABLE STATUS LIKE 'table';
Luego, puede usar, como operadores, por ejemplo:
SHOW TABLE STATUS LIKE 'field_data_%';
Si usted es una usuario de Linux:
para mostrar los motores para todas las tablas para todas las bases de datos en un servidor MySQL, sin tablas, 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)
Puede que te guste esto, si estás en linux, al menos.
Se abrirá toda la información para todas las tablas en less
, presione -S
para cortar líneas demasiado largas.
Ejemplo de salida:
--------------------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
.
.
.
Si estás usando el MySQL Workbench, puede hacer clic en la tabla y seleccione 'alter table'.
En esa ventana puede ver su Motor de mesa y también cambiarlo.
- 1. ¿Cómo encriptar una columna específica en una tabla MySQL?
- 2. ¿Cómo cambiar el tipo de motor de almacenamiento en MySQL?
- 3. Motor de almacenamiento Mysql para la tabla de registro
- 4. ¿Cómo puedo desplazarme automáticamente a una fila de tabla específica?
- 5. WinVerifyTrust para verificar una firma específica?
- 6. Cambiando el tipo de tabla a InnoDB
- 7. Seleccionar fila específica de la tabla de MySQL
- 8. MySQL: actualice una tabla completa, insertando un hash MD5, para cada fila una específica
- 9. Especifique el tipo de tabla/motor de almacenamiento en Doctrine 2
- 10. En Java, ¿cómo puedo verificar si una colección contiene una instancia de una clase específica?
- 11. MySQL Workbench EER Diagramm: cómo cambiar el motor de almacenamiento?
- 12. ¿Cómo puedo almacenar código PHP dentro de una tabla mysql?
- 13. Tabla específica de CSS
- 14. ¿Cómo verificar el tipo de variable? Python
- 15. Cómo agregar CSS para el texto tipo de entrada específica
- 16. ¿Cómo puedo verificar si la columna de la tabla mysql existe?
- 17. .NET: ¿Cómo verificar el tipo dentro de una clase genérica?
- 18. BeautifulSoup: Obtenga el contenido de una tabla específica
- 19. ¿Cómo diseñar una tabla MySql para una nube de etiquetas?
- 20. ¿Cómo puedo verificar si existe un índice en un campo de tabla en MySQL?
- 21. Consulta para verificar el índice en una tabla
- 22. Viendo una tabla para cambiar en MySQL?
- 23. ¿Cuál es el tipo de datos ideal para almacenar la dirección IP en una tabla mysql?
- 24. ¿Cómo puedo hacer una tabla en MySQL llamada "orden"?
- 25. Alternativas al motor de almacenamiento MEMORY para MySQL
- 26. MySQL: ¿cómo puedo ver TODAS las restricciones en una tabla?
- 27. ¿PUEDO UNIRME dos tablas con una sola coincidencia para cada fila de una tabla en MySQL?
- 28. ¿Cómo puedo usar linq para verificar si una enumeración de flags/bitwise contiene un tipo?
- 29. MySQL: ¿Cómo averiguo qué tablas hacen referencia a una tabla específica?
- 30. Elegir el tipo de datos para MySQL?
Si mi mesa está dañado, es simplemente muestra del motor = NULL y tiene un "comentario" que me dice que reparar la tabla. Sin embargo, antes de saber cómo reparar la mesa, supongo que necesito saber el motor (no he llegado tan lejos para ser sincero). Por lo tanto, el comentario de @ Jocker a continuación fue mucho más útil para mí. – harperville
@Greg, ¿Deberíamos usar esto o la solución de Jocker? – Pacerier
@Pacerier - Ambos funcionan bien. La diferencia es que esta solución proporciona la información para una tabla, mientras que la solución de Jocker muestra el tipo de motor para todas las tablas en una base de datos (aunque también es un poco más legible). – kramer65