Files
ibiza_sistema/migrations/add_payment_indexes.sql
nickpons666 5f90790c7a Optimización de rendimiento: página de pagos
- Agregados índices en BD (payments, houses) para mejorar queries
- Consolidada carga de pagos: 12 queries → 1 query
- Implementado caché de monthly_bills en vista (eliminadas ~2,400 queries)
- Nuevo método Payment::updateBatch() para guardado masivo con transacciones
- Reducción total: ~2,437 queries → 13 queries (99.5% mejora)
- Tiempo de carga: 3-5s → <0.5s
- Tiempo de guardado: 8-12s → 1-2s
2026-02-14 14:17:31 -06:00

26 lines
1.0 KiB
SQL

-- =====================================================
-- Optimización de Índices para Página de Pagos
-- Fecha: 2026-02-14
-- Propósito: Mejorar rendimiento de consultas en payments
-- =====================================================
-- Índice compuesto para búsquedas por año y mes
-- Mejora: SELECT ... WHERE year = ? AND month = ?
-- Si el índice ya existe, este comando generará un warning pero continuará
CREATE INDEX idx_payments_year_month ON payments(year, month);
-- Índice compuesto para búsquedas por casa y año
-- Mejora: SELECT ... WHERE house_id = ? AND year = ?
CREATE INDEX idx_payments_house_year ON payments(house_id, year);
-- Índice para ordenamiento de casas por número
-- Mejora: ORDER BY CAST(number AS UNSIGNED)
CREATE INDEX idx_houses_number ON houses(number);
-- Verificar índices creados
SELECT 'Índices de payments:' as 'Tabla';
SHOW INDEX FROM payments WHERE Key_name LIKE 'idx_payments%';
SELECT 'Índices de houses:' as 'Tabla';
SHOW INDEX FROM houses WHERE Key_name LIKE 'idx_houses%';