Estoy ejecutando Windows 7 (profesional) con un Intel Q8400 y MySQL 5.1. Cada vez que tengo una gran cantidad de consultas de MySQL (p. Ej., La inserción o actualización de 10,000-40,000 registros, lo cual toma varios segundos), mi interfaz de usuario tartamudea y se congela. Las aplicaciones generalmente responden (no se congelan) pero no hacen mucho hasta que finaliza la consulta de SQL.
En el uso de la CPU, MySQL consume un procesador completo (25% en el Administrador de tareas) de cada cuatro; Los otros tres están sin usar.
¿Qué puedo hacer para mejorar el rendimiento? Estas consultas se ejecutan durante minutos a veces, por lo que es una molestia bastante importante.
Editar: Tengo un solo SATA HD (Samsung HD502HJ)
Respuestas:
Lo más probable es que esto se deba a un cuello de botella en la E / S. Supongo que está utilizando un solo disco duro o un espejo simple. Si cualquiera de los dos es el caso, no tiene un subsistema de disco que proporcione el rendimiento suficiente para soportar consultas tan grandes sin interrupción a otras cosas que se ejecutan en el sistema.
Básicamente, a menos que desee invertir en unos cuantos discos duros más y un buen controlador RAID, tendrá que vivir con él. Las lecturas / escrituras grandes generalmente siempre están vinculadas al disco, no a la CPU en las máquinas modernas.
Edición: A la luz de los comentarios anteriores sobre su OP, no hay mucho que pueda hacer al respecto con un solo disco duro. La mayoría de los servidores que tratan con consultas SQL grandes tienen entre 6 y 8 discos duros. Las mejores prácticas indican que tiene al menos tres conjuntos de discos duros separados físicamente. Una es para el sistema operativo, Swap y la aplicación, otra para las bases de datos y la tercera para los registros de transacciones. Esto evita que se realicen múltiples escrituras de confirmaciones individuales en el mismo volumen.
Básicamente, si desea ejecutar MySQL en un escritorio en lugar de un servidor y hacer consultas grandes, no hay ninguna cantidad de ajuste que pueda hacer para aliviar este cuello de botella.
fuente
Para aprovechar los múltiples procesadores, debe poder crear una aplicación que divida las sentencias de SQL y distribuya el trabajo en varios subprocesos. Esto permitirá que las consultas se inserten esencialmente a 4 veces la velocidad.
fuente