# === CONFIGURACIÓN MYSQL OPTIMIZADA PARA IESA PROCESOS === # Versión: 1.0 - Optimizada para Dashboard con Múltiples Widgets # Fecha: 28 de agosto 2025 # # INSTRUCCIONES DE INSTALACIÓN: # 1. Abre la ubicación: C:\laragon\bin\mysql\mysql-8.4\my.ini # 2. Reemplaza la sección [mysqld] con este contenido optimizado # 3. Reinicia MySQL desde Laragon # 4. Ejecuta: php artisan optimize:clear en tu proyecto # # ADVERTENCIA: Crea un backup del archivo my.ini original antes de modificar [mysqld] # === CONFIGURACIONES BÁSICAS DE LARAGON === datadir="C:/laragon/data/mysql-8.4" port=3306 socket=/tmp/mysql.sock secure-file-priv="" explicit_defaults_for_timestamp=1 # === OPTIMIZACIONES DE RENDIMIENTO PARA DASHBOARD IESAPROCESSOS === # Motor InnoDB Optimizado - Memoria para widgets con cache innodb_buffer_pool_size=512M # Memoria base para servidor avg (ajusta según RAM) innodb_log_file_size=128M # Log de transacciones optimizado innodb_log_buffer_size=16M # Buffer para logs innodb_flush_method=O_DIRECT # Optimización I/O # Multithreading Optimizado para Widgets innodb_thread_concurrency=8 # Hilos para ejecución concurrente innodb_write_io_threads=4 # Hilos escritura optimizados innodb_read_io_threads=4 # Hilos lectura optimizados innodb_sort_buffer_size=2M # Buffer para ORDER BY en widgets # Cache de Consultas - CRUCIAL para widgets repetitivos query_cache_type=1 # Habilitar cache query_cache_size=128M # Memoria conservadora, usar 256M si tienes más RAM query_cache_limit=64M # Límite por consulta query_cache_min_res_unit=2K # Unidad mínima de resultado # Memoria y Buffers Optimizados para Aplicación key_buffer_size=64M # Buffer índices (reducido para widgets) max_allowed_packet=512M # Paquetes grandes para uploads # Tablas y Conexiones Optimizadas table_open_cache=256 # Tablas abiertas simultáneamente table_definition_cache=512 # Cache definiciones de tabla sort_buffer_size=2M # Buffer para SORT en widgets read_buffer_size=1M # Buffer de lectura secuencial read_rnd_buffer_size=4M # Buffer para lecturas aleatorias # Conexiones Laravel/Filament Optimizadas max_connections=100 # Conexiones simultáneas conservadoras max_connect_errors=1000 # Errores de conexión permitidos wait_timeout=14400 # Timeout 4 horas (proyecto activo) interactive_timeout=14400 # Timeout interactivo thread_cache_size=16 # Cache de hilos optimizado # Optimizaciones para Consultas Complejas de Widgets tmp_table_size=64M # Tablas temporales en memoria max_heap_table_size=64M # Heap tables optimizado join_buffer_size=4M # Buffer para JOINs en widgets max_length_for_sort_data=2048 # Límite sort optimizado # Configuraciones de Compatibilidad Laravel sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION character_set_server=utf8mb4 collation_server=utf8mb4_unicode_ci default_time_zone=SYSTEM # === LOGGING PARA MONITOREO DE RENDIMIENTO === # Logs de consultas lentas - Para monitorear widgets lentos slow_query_log=1 slow_query_log_file="C:/laragon/logs/mysql-slow.log" long_query_time=1 # Consultas > 1s se registran (agresivo) # === CONFIGURACIÓN MARIADB/MYSQLdump === [mydump] quick max_allowed_packet=512M extended-insert=TRUE lock-tables=FALSE # === INSTRUCCIONES DETALLADAS === # 1. PREPARACIÓN: # - Cerrar todos los programas que usen MySQL # - Crear backup: copy my.ini my.ini.backup # 2. INSTALACIÓN: # - Abrir C:\laragon\bin\mysql\mysql-8.4\my.ini # - Remplazar sección [mysqld] completa # - Guardar el archivo # 3. ACTIVACIÓN: # - Reiniciar MySQL desde Laragon # - Esperar a que el servicio inicie completamente # 4. VERIFICACIÓN: # - Ejecutar: php artisan optimize:clear # - Ver dashboard - debería cargar más rápido # - Revisar logs en C:/laragon/logs/mysql-slow.log # === AJUSTES SEGÚN TU MEMORIA RAM === # Si tienes MENOS de 4GB RAM: # innodb_buffer_pool_size=256M # query_cache_size=64M # max_connections=50 # Si tienes 8GB RAM o más: # innodb_buffer_pool_size=1024M # query_cache_size=256M # max_connections=150 # === MONITOREO DE RENDIMIENTO === # Comandos para verificar optimizaciones: # # DESDE MARIA DB CONSOLE O PHP MY ADMIN: # SELECT @@query_cache_size, @@innodb_buffer_pool_size; # # DESDE LARAVEL TINKER: # php artisan tinker # $pdo = DB::connection()->getPdo(); # echo "Conexión exitosa\n"; # === DIAGNÓSTICO DE PROBLEMAS === # Si después de aplicar cambios hay problemas: # 1. MySQL no inicia: # - Revisar Logs: C:/laragon/logs/mysql_error.log # - Restaurar backup: copy my.ini.backup my.ini # 2. Laravel se demora: # - Ejecutar: php artisan optimize:clear # - Verificar logs Laravel: storage/logs/laravel.log # 3. Consultas lentas: # - Revisar: C:/laragon/logs/mysql-slow.log # - Ajustar valores según recomendaciones arriba # === TECNOLOGÍAS SOPORTADAS === # • Laravel 12.x con Filament v4.x # • MariaDB 10.8+ / MySQL 8.0+ # • PHP 8.1+ con OPcache # • Windows 10/11 con Laragon # • Aplicaciones con múltiples widgets simultáneos # === RESPONSABLE DEL ANÁLISIS === # Analizado y optimizado para: # ‣ Dashboard con 8+ widgets simultáneos # ‣ Consultas INDEXADAS en tablas documents, categories, tags # ‣ Cache implementado en widgets (60s) # ‣ Filtrado y navegación entre categorías # ‣ Estadísticas en tiempo real # ‣ Subidas de archivos optimizadas # === NOTAS FINALES === # Esta configuración es específica para tu proyecto IESA Procesos # con énfasis en rendimiento de dashboard y widgets múltiples. # Si tienes problemas específicos, puedes ajustar valores individuales # según las recomendaciones del sistema operativo.