Jump to content

[Solucionado] Reducir consultas SQL


Eutanasio

Recommended Posts

Hola a todos,

 

Estoy experimentando problemas con la web, me salen errores tipo:

Link to database cannot be established: SQLSTATE[42000] [1203] User ps_basededatos already has more than 'max_user_connections' active connections

El limite de consultas a la BD por hora es de 10.000 creo recordar, o incluso más. pero lo de las consultas simultáneas creo q es 10 o algo así por usuario. Habría alguna manera de evitar tantas consultas a la BD y así no mostrarse tantos errores?

 

Gracias

Edited by omar2886 (see edit history)
Link to comment
Share on other sites

Cuando te lanza este error?

Has realizado alguna modificación de código fuente?

 

De todos modos, puede que el error que te está dando es por el número de registros que tienes en la tabla de la bbdd, ps_basededatos no se a que corresponderá, supongo que te lo habrás inventado para no poner el nombre real.

Link to comment
Share on other sites

Hola a todos,

 

Estoy experimentando problemas con la web, me salen errores tipo:

Link to database cannot be established: SQLSTATE[42000] [1203] User ps_basededatos already has more than 'max_user_connections' active connections

El limite de consultas a la BD por hora es de 10.000 creo recordar, o incluso más. pero lo de las consultas simultáneas creo q es 10 o algo así por usuario. Habría alguna manera de evitar tantas consultas a la BD y así no mostrarse tantos errores?

 

Gracias

 

¿Estas seguro del limite que tienes en el valor de:

 

max_user_connections

 

?

 

¿Este problema te salta cuando realizas busquedas sobre tu tienda?

Link to comment
Share on other sites

Gracias por responder. Pues no sé cuándo aparece el error, supongo que cuando hay más trafico simultáneo, no sé. Pero cuando empieza a aparecer, cada vez que cargas una nueva pag, tienes q actualizar para que entre y es una pesadilla que le pase eso a los clientes.

Sí, la BD es inventada claro está. No hay entonces un módulo o algo que evite realizar tantas consultas a laBD? creo haber escuchado algo alguna vez.

 

Cuando te lanza este error?

Has realizado alguna modificación de código fuente?

 

De todos modos, puede que el error que te está dando es por el número de registros que tienes en la tabla de la bbdd, ps_basededatos no se a que corresponderá, supongo que te lo habrás inventado para no poner el nombre real.

Link to comment
Share on other sites

Sí, la BD es inventada claro está. No hay entonces un módulo o algo que evite realizar tantas consultas a laBD? creo haber escuchado algo alguna vez.

 

A ver hay modulos, que hacen una limpiada en la base de datos, como por ejemplo este: http://www.prestasho...tablas-ps-1215/ o este http://www.prestasho...-cleanner-ps15/.

 

(Son gratuitos ambos, pero creo que no te sirven para lo que quieres.)

 

Creo que habia que ver como se origina inicialmente el problema.

Link to comment
Share on other sites

A ver hay modulos, que hacen una limpiada en la base de datos, como por ejemplo este: http://www.prestasho...tablas-ps-1215/ o este http://www.prestasho...-cleanner-ps15/.

 

(Son gratuitos ambos, pero creo que no te sirven para lo que quieres.)

 

Creo que habia que ver como se origina inicialmente el problema.

 

Muchas gracias Nadie! Pues el error aparece tanto en el admin como en el front, no específicamente en las búsquedas, sino navegando por la web normal.

Link to comment
Share on other sites

Revisa si quieres este tema, en el que habla Olivier y Joseangtv: http://www.prestasho...de-datos-lenta/ quizas te pueda servir. (Aunque ese tema, va por otro hilos.....)

 

Qué va Nadie, no he conseguido sacar nada que me sirva en ese post... Es que al estar en un shared hosting, no hay muchas opciones de mejora de rendimiento, llevo años con ellos usando todo tipo de CMS y tal, y hasta ahora no había tenido problemas, todo empezó cuando las nuevas versiones de PS 1.5.4 empezaron a ser más exigentes. :( no sé qué hacer

Link to comment
Share on other sites

Hace ya tiempo me ocurrió algo similar a lo tuyo aunque no fue con Prestashop pero para el caso es lo mismo. Se debía a que había una parte mal programada y en vez de conectarse a la base de datos, consultar y desconectarse no se desconectaba.

Prestashop en este sentido está mas que depurado por lo que pongo la mano en el fuego de que no está ahí el problema pero si puede estarlo en algún módulo que hayas instalado o actualizado recientemente.

De todos modos te sugiero que te instales el mysql workbench y podrás ver cuales son las conexiones que te hacen llegar al límite.

Como solución rápida pero no la mejor te aconsejo que reduzcas el valor en el parametro "wait_timeout" de mysql para que mate las conexiones.

Link to comment
Share on other sites

Hace ya tiempo me ocurrió algo similar a lo tuyo aunque no fue con Prestashop pero para el caso es lo mismo. Se debía a que había una parte mal programada y en vez de conectarse a la base de datos, consultar y desconectarse no se desconectaba.

Prestashop en este sentido está mas que depurado por lo que pongo la mano en el fuego de que no está ahí el problema pero si puede estarlo en algún módulo que hayas instalado o actualizado recientemente.

De todos modos te sugiero que te instales el mysql workbench y podrás ver cuales son las conexiones que te hacen llegar al límite.

Como solución rápida pero no la mejor te aconsejo que reduzcas el valor en el parametro "wait_timeout" de mysql para que mate las conexiones.

 

Por este camino iba yo, con el nombre de la tabla que aparece en el error ya no sabes si es uqe le ha cambiado el nombre o es una tabla de un módulo que se ha realizado a mano. No se cuantas conexiones soportará prestashop, pero vamos, yo creo que sería para estar contento si te las tumban porque debes vender a lo bestia. Si se ha realizado algún módulo a mano o se ha instalado algo puede que como dices esté dejeando conexiones sin cerrar y por ahí venga el problema.

Link to comment
Share on other sites

Por este camino iba yo, con el nombre de la tabla que aparece en el error ya no sabes si es uqe le ha cambiado el nombre o es una tabla de un módulo que se ha realizado a mano. No se cuantas conexiones soportará prestashop, pero vamos, yo creo que sería para estar contento si te las tumban porque debes vender a lo bestia. Si se ha realizado algún módulo a mano o se ha instalado algo puede que como dices esté dejeando conexiones sin cerrar y por ahí venga el problema.

 

El error que da MySQL es del usuario de la base de datos, no de ninguna tabla, por lo que aunque no se hubiera inventado el nombre no se podría saber nada :(

 

Hay opción de activar el log de queries o de slow queries y rascar a ver si se detecta algún comportamiento anormal.

Link to comment
Share on other sites

El error que da MySQL es del usuario de la base de datos, no de ninguna tabla, por lo que aunque no se hubiera inventado el nombre no se podría saber nada :(

 

Hay opción de activar el log de queries o de slow queries y rascar a ver si se detecta algún comportamiento anormal.

Joseantgv tiene razón, no se trata de una tabla en particular aparentemente. He comprobado el log de errores y no encuentro algo así muy recurrente que coincida con el problema (creo), por ejemplo, el último que me consta es este:

PHP Warning:  preg_match() expects parameter 2 to be string, array given in [...]/SitioWeb/classes/Validate.php on line 177

Link to comment
Share on other sites

Joseantgv tiene razón, no se trata de una tabla en particular aparentemente. He comprobado el log de errores y no encuentro algo así muy recurrente que coincida con el problema (creo), por ejemplo, el último que me consta es este:

PHP Warning:  preg_match() expects parameter 2 to be string, array given in [...]/SitioWeb/classes/Validate.php on line 177

En el log de errores de php no vas a encontrar el error de mysql.

Link to comment
Share on other sites

Bueno saberlo! gracias. Entonces dónde puedo verlo??

Es que en realidad no hay ningún error. Lo que ocurre es que las conexiones no se cierran y cuando acumulas 10 (según dijiste antes) deja de permitir más. Como te dije en un post anterior, instalate mysql workbench y averiguaras quien lo hace.

Link to comment
Share on other sites

Es que en realidad no hay ningún error. Lo que ocurre es que las conexiones no se cierran y cuando acumulas 10 (según dijiste antes) deja de permitir más. Como te dije en un post anterior, instalate mysql workbench y averiguaras quien lo hace.

Ok gracias Gorky20, voy a probar todo lo que me has dicho a ver!

Link to comment
Share on other sites

Es que en realidad no hay ningún error. Lo que ocurre es que las conexiones no se cierran y cuando acumulas 10 (según dijiste antes) deja de permitir más. Como te dije en un post anterior, instalate mysql workbench y averiguaras quien lo hace.

 

Con el Workbench se pueden monitorizar las queries que se están ejecutando en el momento?

Link to comment
Share on other sites

Una cosa, los unicos TimeOut q encuentro son estos:

; Default timeout for socket based streams (seconds)

default_socket_timeout = 60

 

; Maximum time (in secondes) for connect timeout. -1 means no limit

mysql.connect_timeout = 60

 

; Connect timeout

;mssql.connect_timeout = 5

; Query timeout

;mssql.timeout = 60

 

; Default timeout in seconds.

pfpro.defaulttimeout = 30

Link to comment
Share on other sites

Una cosa, los unicos TimeOut q encuentro son estos:

; Default timeout for socket based streams (seconds)

default_socket_timeout = 60

 

; Maximum time (in secondes) for connect timeout. -1 means no limit

mysql.connect_timeout = 60

 

; Connect timeout

;mssql.connect_timeout = 5

; Query timeout

;mssql.timeout = 60

 

; Default timeout in seconds.

pfpro.defaulttimeout = 30

Si no lo encuentras puedes añadirlo. De todos modos el workbench te permite editarlo con un interfaz amigable.

Link to comment
Share on other sites

Sino lo consigues solventar o tienes dudas de como solucionarlo, me puedes enviar los datos de acceso por privado sin problema y te lo miro sin ningún problema, luego como es lógico se pega la solución en el foro. (No te preocupes, que no te voy a cobrar nada)

Link to comment
Share on other sites

Sino lo consigues solventar o tienes dudas de como solucionarlo, me puedes enviar los datos de acceso por privado sin problema y te lo miro sin ningún problema, luego como es lógico se pega la solución en el foro. (No te preocupes, que no te voy a cobrar nada)

 

Perfecto Nadie! trabajamos en ello pues.

Link to comment
Share on other sites

  • 2 weeks later...

La solución.... Cambiar de Hosting! Ahora con Loading va todo de perlas!

Ah cierto, que me lo comentastes por privado, que al final te cambiastes de hosting antes de poder mirarlo. (Se me olvido comentarlo en el tema)

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...