Foros del Web » Programando para Internet » PHP »

mysqli_use_result(), mysqli_query unbuffered

Estas en el tema de mysqli_use_result(), mysqli_query unbuffered en el foro de PHP en Foros del Web. Hola En la funcion de PHP mysqli_use_result() se permite hacer consulta unbuffered en mysqli_query el tercer argumento o parametro tambien permite especificar si es un ...
  #1 (permalink)  
Antiguo 22/12/2010, 16:09
 
Fecha de Ingreso: febrero-2005
Mensajes: 626
Antigüedad: 19 años, 2 meses
Puntos: 10
mysqli_use_result(), mysqli_query unbuffered

Hola

En la funcion de PHP mysqli_use_result() se permite hacer consulta unbuffered en mysqli_query el tercer argumento o parametro tambien permite especificar si es un unbuffered

En mysqli_use_result dice en la documentacion:

One should not use mysqli_use_result() if a lot of processing on the client side is performed, since this will tie up the server and prevent other threads from updating any tables from which the data is being fetched.

Que significa que cuando haya mucha carga en el servidor, si hay por ejemplo dos UPDATES, por dos usuarios diferentes de una misma aplicacion (no dos usuario de la base de datos), evitara que uno de ellos lo haga correctamente?

Lo extraño en que la documentacion no dice algo similar en consultas unbuffered usando mysqli_query, ocurre lo mismo?

y otra pregunta cuando se hacen consultas buffered, lo que se guarda en el buffer es toda la consulta incluyendo lo que este dentro de la clausula WHERE o solo se cachea el acceso a la tabla y a los campos?

y una preguntita mas que depende un poco de la anterior, realmente en el caso de UPDATE, INSERT o DELETE, realmente no tiene caso usar consultas con buffer de MySQLI, solo en SELECT con campos que no cambien, verdad?


Saludos y gracias de antemano

Última edición por August; 22/12/2010 a las 17:59
  #2 (permalink)  
Antiguo 22/12/2010, 21:25
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: mysqli_use_result(), mysqli_query unbuffered

Cita:
Iniciado por August Ver Mensaje
Que significa que cuando haya mucha carga en el servidor, si hay por ejemplo dos UPDATES, por dos usuarios diferentes de una misma aplicacion (no dos usuario de la base de datos), evitara que uno de ellos lo haga correctamente?
Exacto. Podrías sobrecargar el servidor, ya que aguantas que otras consultas se hagan mientras se recorre la de un usuario.

Cita:
Iniciado por August Ver Mensaje
[/B]Lo extraño en que la documentacion no dice algo similar en consultas unbuffered usando mysqli_query, ocurre lo mismo?
No entendí esta pregunta. mysqli_query hace la consulta directamente y es en el orden en que se haya recibido en el servidor. Si envías una consulta y otro usuario se conecta y hace una consulta solo tiene que esperar que termine la consulta que hizo el primer usuario luego continúa con la próxima que entró, que puede ser la del primer usuario si es que hay más consultas en el código o puede ser la del segundo usuario si es que entró simultáneamente.

Cita:
Iniciado por August Ver Mensaje
y otra pregunta cuando se hacen consultas buffered, lo que se guarda en el buffer es toda la consulta incluyendo lo que este dentro de la clausula WHERE o solo se cachea el acceso a la tabla y a los campos?
Guarda la consulta, o sea
Código MySQL:
Ver original
  1. SELECT * FROM tabla WHERE columna = valor

Cita:
Iniciado por August Ver Mensaje
y una preguntita mas que depende un poco de la anterior, realmente en el caso de UPDATE, INSERT o DELETE, realmente no tiene caso usar consultas con buffer de MySQLI, solo en SELECT con campos que no cambien, verdad?
Eso va a depender de como quieres que corra el proceso, si todo corrido o no.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 22/12/2010, 21:57
 
Fecha de Ingreso: febrero-2005
Mensajes: 626
Antigüedad: 19 años, 2 meses
Puntos: 10
Respuesta: mysqli_use_result(), mysqli_query unbuffered

Cita:
Iniciado por abimaelrc
No entendí esta pregunta.
Si es que me han comentado que puede haber incoherencias, si hay mucha carga en el servidor y se usan consultas unbuffered, supongo que si tambien se usa mysqli_query($link,$query,MYSQLI_USE_RESULT) , en el tercer argumento/parametro se indica que no se usara el buffer, lo cual tambien puede ocasionar lo mismo, asi es, verdad?

era a lo que me referia con esa pregunta que al fin y a cabo tiene el mismo efecto MYSQLI_USE_RESULT tanto como funcion que como argumento de mysqli_query.

Y el rendimiento sin bufferear mejoraria bastante? sin embargo si hay picos de bastante carga tambien habria un alto riesgo de incoherencias, no?

Tambien otra idea seria, obtener el server load y de acuerdo a esto usar consultas con LOW PRIORITY y el unbuffered

Yo anteriormente de darme cuenta que es mejor utilizar mysqli contra mysql yo tenia una classesita para hacer prepared statements, usando arrays a diferencia que el mysqli_prepare no acepta arrays, lo cual no veo como problema, pero lo cual he visto que algunos si

Saludos

Última edición por August; 22/12/2010 a las 22:03

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:53.