-- Optimización de Índices para educa25_docente
-- Este script elimina índices duplicados y redundantes que consumen espacio y ralentizan las escrituras.

USE `educa25_docente`;

-- 1. Índices Exactamente Duplicados y Redundantes en la tabla 'matriculados'
-- Los índices 'ano_lectivo_grado_curso' y 'idx_reporte_mat' son redundantes 
-- porque ya existe el índice 'ano_lectivo' (ano_lectivo, grado, curso, nombre) que los cubre.
ALTER TABLE `matriculados` DROP INDEX `ano_lectivo_grado_curso`;
ALTER TABLE `matriculados` DROP INDEX `idx_reporte_mat`;

-- 2. Índice Exactamente Duplicado en 'tareas_trabajos'
-- El índice 'row_id' es idéntico a la clave primaria (PRIMARY KEY), por lo que es innecesario.
ALTER TABLE `tareas_trabajos` DROP INDEX `row_id`;

-- 3. Índices Redundantes (Prefijos de la clave primaria) en tablas de 'asignaturas'
-- El índice 'ano_lectivo_grado_curso' es un prefijo de la PRIMARY KEY (ano_lectivo, grado, curso, codigo).
ALTER TABLE `asignaturas` DROP INDEX `ano_lectivo_grado_curso`;
ALTER TABLE `asignaturas_copy` DROP INDEX `ano_lectivo_grado_curso`;
ALTER TABLE `asignaturas_ppal` DROP INDEX `ano_lectivo_grado_curso`;

-- 4. Índice Redundante (Prefijo) en 'notas'
-- El índice 'idx_auditoria' (ano_lectivo, codigoasig) es un prefijo de 'anonumcod' (ano_lectivo, codigoasig, numidentif).
ALTER TABLE `notas` DROP INDEX `idx_auditoria`;

SELECT 'Optimización de índices completada con éxito.' AS Resultado;
