Ver Mensaje Individual
  #4 (permalink)  
Antiguo 07/07/2003, 12:31
Avatar de e-miliox
e-miliox
 
Fecha de Ingreso: noviembre-2002
Ubicación: San Antonio - Chile
Mensajes: 223
Antigüedad: 21 años, 5 meses
Puntos: 7
correccion

con respecto a la explicacion que da cluster sobre lo que es el overhead, siento decirles que no es correcta ya que el overhead dentro de la tabla no se produce por el "desorden" de los indices autogenerados, de hecho una tabla que no tenga esta caracteristica , tambien puede tener ovehead.

El overhead se produce a causa del movimiento normal de una tabla (inserciones, modificaciones, eliminaciones) sobre todo cuando en dicha tabla abundan los campos de longitud variable (de tipo varchar o blob, por ejemplo). O al borrar registros , digamos que no se borran fisicamente (analogo a cuando envias algo a la papelera de reciclaje) sino que igualmente queda la informacion enlazada a la tabla, pero marcada como borrada.

Entonces, estos "registros muertos", se acumulan, y sumados con las demas causas que explique en el parrafo anterior, producen el overhead

Ahora, hacer un optimize table, no es malo, de hecho cuando lo haces, estas "defragmentando" la tabla (de hecho que la tabla quede "fragmentada" deberia ser un sinonimo de "overhead"). Y liberas el espacio que ocupa la informacion que sobraba. Por supuesto, y para que no nos pongamos paranoicos con esto, esto no es necesario hacerlo seguido sino que se puede hacer a modo de mantencion (una vez al mes, por ejemplo) y en las tablas que consideremos con mas movimiento.

De ninguna manera te resetea los indices autoincrementados, porque si fuera asi la funcion de optimizacion no tendria sentido, ya que romperia con cualquiero regla de integridad referencial que tengamos establecida entre tablas de la base de datos.

Bueno eso era

nota: lo que dije recien es una mezcla entre la traduccion de lo que dice en la pagina de mysql y algo mas de mi cosecha
http://www.mysql.com/doc/en/OPTIMIZE_TABLE.html

Saludos
__________________
=PoWeReD By MySeLf!=