Se utilizan demasiadas conexiones para insertar datos en mysql

Estoy preguntando sobre demasiadas conexiones en el servidor mysql y phpmyadmin, como velocidad de datos por hora ~ 1000 desde la fuente en mi base de datos. Cuando enciendo TOP en el servidor, mysqld muestra una utilización de la CPU del 100-145% y también se están ejecutando muchos subprocesos php, como la inserción de datos a través del script php. Mi pregunta es, ¿existe algún mecanismo a través del cual las conexiones no se desborden y el servidor mysql utilice la CPU lo más bajo posible? ya que estoy usando un servidor VPS pero no es tan efectivo usar otra aplicación en vps, porque el servidor mysql toma el 100% de la CPU. En algún momento, phpmyadmin falla y muestra algún error popular. he leído caché de consultas mecanismo, pero se usa para almacenar en caché las mismas consultas de selección, ¿debería usar esto para insertar o hay algún otro tipo de solución óptima? mecanismo de cola. Además, no puedo decir en qué momento la velocidad de inserción de datos es baja o alta, si lo sabe, entonces puedo probar el mecanismo de cola. ¡Gracias por adelantado!

preguntado el 22 de mayo de 12 a las 10:05

@GordonM: los datos se insertan continuamente en la base de datos a través del script php, el servidor mysql usa el 100% de la utilización de la CPU en el servidor vps -

2 Respuestas

Verifique sus códigos y vea si tiene algo como

for($i = 0; $i < 10000; $i++) // basicly long loop with inserts
    mysql_query("INSERT INTO table_name (id, value) VALUES ({$i}, 100)");

Esto debería ser alterado a algo como

$arr_values = array();
for($i = 0; $i < 10000; $i++)
    $arr_values[] = "({$i}, 100)";

$str_values = implode(', ', $arr_values);

mysql_query("INSERT INTO table_name (id, value) VALUES {$str_values}");

Básicamente, tenga en cuenta las consultas innecesarias en su código.

contestado el 22 de mayo de 12 a las 10:05

¿Memcache es relevante para este problema? Como funciona como servidor y cliente, Shashank

Todavía no encuentro ninguna forma de resolver el uso superior de la base de datos, estoy usando una consulta de inserción por segundo ~ 20 pero no encuentro ningún mecanismo de caché para insertar que escriba datos en la base de datos y maneje el uso de menos conexiones mysql - Shashank

Debe tener una idea básica sobre "CACHÉ DE CONSULTA" desde el siguiente enlace caché mysql_query

contestado el 22 de mayo de 12 a las 10:05

El caché de consultas no es mi preocupación, ya que los datos se insertan a través de alguna fuente continuamente en lugar de seleccionar algunos datos de la base de datos.. - Shashank

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.