DESCRIBE nombre_tabla
DESCRIBE y EXPLAIN son sinónimos. DESCRIBE en un nombre de tabla devuelve la definición de las columnas.
DESCRIBE tablename;
COLUMN_NAME COLUMN_TYPE
IS_NULLABLE COLUMN_KEY COLUMN_DEFAULT EXTRA
id int(11) NO PRI 0
auto_increment
test varchar(255) YES
(null)
Muestra los nombres de las columnas, seguidos del tipo de columna, si se permite nulo en la columna y si la columna utiliza un índice. También se muestra el valor predeterminado y si la tabla contiene algún comportamiento especial como un auto_increment.
EXPLAIN Select query
Un EXPLAIN delante de una consulta de selección muestra cómo se ejecutará la consulta. De esta manera veremos si la consulta utiliza un índice o si podríamos optimizar la consulta agregando un índice.
Ejemplo
de query:
explain select * from usuarios join data on usuarios.test = data.fk_usuarios;
Ejemplo de resultado:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE user index test test 5 (null) 1 Using where;
Usando índice
1 SIMPLE data ref fk_user fk_user 5 user.test 1 (null)
En el tipo se ve si se utilizó un índice. En la columna posible_keys podemos ver si el plan de ejecución puede elegir entre diferentes índices o si no existe ninguno. La clave nos indica el índice real utilizado. Key_len muestra el tamaño en bytes de un elemento de índice. Cuanto menor sea este valor, más elementos del índice encajarán en el mismo tamaño de memoria y se pueden procesar más rápido. Rows muestra el número esperado de filas que la consulta debe escanear, cuanto más bajas, mejor.