MySQL - Muchos Updates

 
Vista:

Muchos Updates

Publicado por Principiante (1 intervención) el 27/07/2009 23:40:00
Hola.

Quisiera que me indicáseis cual de las 2 formas que describo a continuación hace que la BBDD realice los updates mas rapidamente. Ahora mismo tengo implementado el método 1 pero me va a veces muy lento y colapso el servidor donde tengo alojada la BBDD.

Situación:

Base de datos con una tabla que posee por ejemplo 30000 registros. De ellos realizo una select que devuelve 5000. por otro lado con otra consulta obtengo el número de usuarios que tengo que asignar a esos registros en plan de repartir esos 5000 a partes iguales para los 5.

Método 1: Lo que hago es ir recorriendo cada registro de los 5000 y entonces con un UPDATE asignar el usuario en un campo de ese registro. REG 1 - usuario 1, REG 2 - usuario 2... REG 5 - usuario 5, REG 6 - usuario 1, REG 7 - usuario 2... hago 5000 updates

Este método se hace muy lento al verdad o se colpasa el servidor un montón.

METODO 2: Se me ocurre dividir los 5000 entre los X usuarios (5 por ejemplo) y hacer selects a la tabla con TOP de 1000 (en este caso porque seria lo que le toca a cada uno) y entonces recorrer los 1000 actualizando con el usuario 1, luego otro TOP de 1000 con updates del usuario 2...

Existe la opción de hacer un update a la tabla de los 30000 al campo X = 2 por ejemplo, a esa select de 1000 en una sola instrucción SQL sin tener que ir recorriendo registro a registro? Si se puede por eso creo que lo mrjor será cambiar el método por este segundo.

Espero haberme explicado. Lo de hacer 1 sólo update si se puede para cada 1000 o los que sean.

Si se os ocurre otra cosa mejor pues... :)

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Muchos Updates

Publicado por Principiante (2 intervenciones) el 18/08/2009 20:24:01
Hola grupo.

Al final he realizado la segunda opción de realizar los UPDATES con un LIMIT y evidentemente se ha mejorado muchíiisimo la velocidad. Es lógico pues sólo se realizan X UPDATES según el número de usuarios y no como antes que se realizaba un UPDATE por cada cliente.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar