Estudiando más funcionalidades de common-schema, ejecuto una consulta sobre claves redundantes:
SELECT * FROM common_schema.redundant_keys
Y me aparecen una serie de resultados, donde me informan de que he generado varias claves que, literalmente, “sobran“. El resultado de la consulta contiene mucha información interesante!
Lo siguiente que piensas es: “Bueno, si sobran, hay que quitarlas“. Pero, de eso también se encarga la propia consulta anterior, pues el campo “sql_drop_index” contiene la sentencia SQL para eliminar dicho índice.
Pero además, para facilitar todavía más la vida, common_schema incluye una función muy interesante para aprovechar esas SQL ya preparadas para ejecutar, y es la función EVAL, de forma que con una sola función, podemos eliminar todos esos índices redundantes, volviendo a aprovechar la sentencia SQL anterior.
call eval("SELECT sql_drop_index FROM
common_schema.
redundant_keys")
Si sólo se desea ejecutar para una base de datos, podemos rehacer la anterior consulta incluyendo una cláusula WHERE y limitando a una base de datos concreta, tal que así:
call eval(" SELECT sql_drop_index FROM
common_schema.
redundant_keys WHERE table_schema='mi_database' ");
Espero que lo expuesto os sea de utilidad, y por supuesto, os sea beneficioso para el buen mantenimiento de vuestras bases de datos!