He encontrado lo siguiente :
Las sentencias UPDATE son optimizadas de manera similar a las sentencias SELECT con la sobrecarga adicional de la escritura. Por ejemplo, para efectos de optimización, el siguiente código:
UPDATE nombreCampo FROM nombreTabla WHERE algunaCondicion
Es el mismo que este:
SELECT nombreCampo FROM nombreTabla WHERE algunaCondicion
Es decir, podemos optimizar una sentencia UPDATE de la misma forma que su equivalente sentencia SELECT.
La velocidad de escritura depende de la cantidad de datos que están siendo actualizados y el número de índices que son actualizados, por lo tanto debemos tener cuidado de crear índices que no sean verdaderamente útiles, o bien, hacer que los campos de la tabla sean más grandes de lo que realmente necesitamos.
También, otra forma de obtener actualizaciones rápidas es retrasar los UPDATEs y entonces hacer muchas actualizaciones en una fila posteriormente. Hacer muchas actualizaciones en una fila es mucho más rápido que hacer uno a la vez si se bloquea la tablas.
Debemos notar que para una tabla MyISAM que usa el formato de registro dinámico, el actualizar el registro a una longitud total más grande puede dividir el registro. Si esto llega a ocurrir, es muy importante usar el comando OPTIMIZE TABLE ocasionalmente.
El tema de retrasar los UPDATES suena interesante, podría almacenarlos en una variable string todas las sentencias SQL para luego ejecutarlas de golpe pero claro...... ¿tengo alguna limitación de tamaño? Podria encadenar por ejemplo 200 sentencias sQL separadas por punto y coma y lanzarlas de golpe y asi sucesivamente con el resto. Mi pregunta es ¿hasta cuantas sentencias sQL puedo encadenar en una variable para luego ejecutarla?
Tambien tenia pensado en bloquear la tabla que deseo actualizar para agilizar las actualizaciones.
LOCK TABLES nombretable WRITE;
..... ejecutar updates....
UNLOCK TABLES;
Gracias.