-- ============================================================
-- Índices de optimización para el panel buytubestore
-- Generado 2026-10-31 — ejecutar UNA vez en phpMyAdmin (o por
-- consola mysql) sobre la base iivzwpqp_JEFFERSON.
--
-- Por qué: con ~8000 cuentas, las consultas de api.php y
-- tienda.php hacen búsquedas y subconsultas por "correo",
-- "tipo", "plataforma" y "creado_por" en tablas que hoy solo
-- tienen índice en el id (PRIMARY KEY). Eso obliga a MySQL a
-- recorrer la tabla completa en cada búsqueda. Estos índices
-- dejan esas búsquedas casi instantáneas.
--
-- Es seguro ejecutarlo con el sitio en producción: crear un
-- índice no borra ni cambia datos, solo puede tardar unos
-- segundos/minutos mientras se construye (con 8000 filas será
-- cuestión de segundos).
--
-- Si alguna línea da error "Duplicate key name", es porque ese
-- índice ya existe: ignora esa línea y sigue con las demás.
-- ============================================================

-- clientes: usado en WHERE creado_por=..., y en la subconsulta
-- de stock_real (WHERE correo=... AND tipo='Perfil')
ALTER TABLE clientes ADD INDEX idx_clientes_correo_tipo (correo, tipo);
ALTER TABLE clientes ADD INDEX idx_clientes_creado_por (creado_por);

-- cuentas_maestras: usado en WHERE correo=... AND plataforma=...
-- (chequeo de duplicados en carga masiva) y en WHERE creado_por=...
ALTER TABLE cuentas_maestras ADD INDEX idx_masters_correo_plataforma (correo, plataforma);
ALTER TABLE cuentas_maestras ADD INDEX idx_masters_creado_por (creado_por);
ALTER TABLE cuentas_maestras ADD INDEX idx_masters_plataforma (plataforma);

-- caidas: usado en WHERE creado_por=...
ALTER TABLE caidas ADD INDEX idx_caidas_creado_por (creado_por);

-- usuarios: login busca por "usuario", listados filtran por "rol" y "creado_por"
ALTER TABLE usuarios ADD INDEX idx_usuarios_usuario (usuario);
ALTER TABLE usuarios ADD INDEX idx_usuarios_rol_creado_por (rol, creado_por);

-- proveedores: filtra por creado_por
ALTER TABLE proveedores ADD INDEX idx_proveedores_creado_por (creado_por);

-- campanas_prospectos: filtra por creado_por y busca/actualiza por telefono
ALTER TABLE campanas_prospectos ADD INDEX idx_campanas_creado_por (creado_por);
ALTER TABLE campanas_prospectos ADD INDEX idx_campanas_telefono (telefono);
