Foros del Web » Programando para Internet » PHP »

Overhead en phpmyadmin

Estas en el tema de Overhead en phpmyadmin en el foro de PHP en Foros del Web. hola..... Hice este formulario personal para poder borrar datos de mi bd Código: <td height="100" align="center" bordercolor="#999999" bgcolor="#FFFF99"> <form> <table width="99%" height="69" bordercolor="#FFFF99" border="1"> <tr> ...
  #1 (permalink)  
Antiguo 05/07/2003, 15:31
 
Fecha de Ingreso: abril-2003
Ubicación: Guatemala
Mensajes: 93
Antigüedad: 21 años
Puntos: 1
Overhead en phpmyadmin

hola.....

Hice este formulario personal para poder borrar datos de mi bd

Código:
<td height="100" align="center" bordercolor="#999999" bgcolor="#FFFF99"> 
      <form>
       
        <table width="99%" height="69" bordercolor="#FFFF99" border="1">
          <tr>
            <td width="50%" align="center" bordercolor="#999999">Categoria
              <select name="bor" method="post" action="<?php echo $PHP_SELF ?>">
                  <option selected>Vehiculos</option>
                  <option>Animales</option>
                  <option>Hogar</option>
                  <option>Inmuebles - venta</option>
                  <option>Inmuebles - alquiler</option>
                  <option>Maquinaria</option>
                  <option>Mobiliario</option>
                  <option>Tecnologia</option>
                  <option>Varios</option>
                  <option>Empleos</option>
                  <option>Servicios</option>
				  <option>pruebas</option>
                </select>
            </td>
             
            <td width="50%" align="center" bordercolor="#999999">Id number 
              <input type="text" name="num">
            </td>
			<tr>
			
			
          </tr>
        </table>
        <table width="94%" height="38" border="1" bordercolor="#FFFF99">
          <tr>
            <td width="29%" height="34" align="center"><input type="submit" name="Submit" value="Borrar"></td>
          
            <td width="71%" align="center" bordercolor="#999999"> 
              
Código PHP:
<?php  if ($num==""){        echo "Escriba el id que desea borrar";  } else {        mysql_connect("localhost""""") or die (mysql_error());        mysql_select_db ("") or die (mysql_error());        $borrar="DELETE from $bor WHERE id= $num";        mysql_query($borrar) or die(mysql_error());    echo "se borro el siguiente id en $bor: $num"; } ?>
</td> </tr> </table> </form></td>
todo me funciona bien.....si me borra todo lo que haya en ese id,
pero cuando entro a phpmyadmin y me voy a la tabla, me dice que esta overhead en rojo....entonces le apacho donde dice optimizar tabla y me lo arregla pero necesito saber como hacer para que esto no pase.....

gracias de antemano....

sicuesn
  #2 (permalink)  
Antiguo 06/07/2003, 12:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
La pregunta sería ..

¿Conces que significa el "aviso" de overhead? ...
¿sabes que hace el "optimizar" tabla?

El "overhead" tengo entendido que sólo indica que en tu tabla X que usas un campo autonumerico tienes registros que has borrado y ya no es secuencial el conteo: 1,2,3,4 .. sino que ahora tienes ejemplo: 1,3,4 .. siendo el próximo indice autonumérico a contar el 5 ..

AL usar tu "optimizar" .. se reorganizan los indices y te quedaría: 1,2,3 (para el caso del ejemplo ..) Por ello el "overhead" indicador ya no te sale en "rojo" .. El caso que si hace esto (ahí no estoy seguro) .. si ese "ID" de esa tabla autonumerico lo tienes relacionado con la tabla Y .. vas a perder toda la integridad referencial .. O imaginate ese link de un usuario usuario.php?id=3 que has borrado .. ahora no coincidirá y saldrá otro registro en ese lugar ...

"Creo" que por ahí va la cosa .. en tal caso informate mejor en www.mysql.com pues eso es problema de Mysql y de como se trabaje los indices (autonumericos en este caso) ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 07/07/2003, 11:26
 
Fecha de Ingreso: abril-2003
Ubicación: Guatemala
Mensajes: 93
Antigüedad: 21 años
Puntos: 1
bueno es exactamente lo que tu dijiste

me meti a ver lo que es optimizar la tabla y me dijo lo mismo que vos me dijistes.......ahora lo que no logre encontrar y que estube buscando es: que si es malo o no importa si lo dejo asi.....

lo que pasa es lo siguiente.......la gente sube sus anuncios a mi pagina de clasificados......todavia no tengo usuarios, entonces cualquier persona puede meter porno, chistes, etc etc....

entonces quiero tener la opcion de poder borrar....el id que necesite borrar......

Voy a probar dejarlo asi mientras le pongo usuarios.....aunque se que me va a tomar tiempo lograr meterle usuarios....todavia no se como...

Saludos

sicuesn
  #4 (permalink)  
Antiguo 07/07/2003, 12:31
Avatar de 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!=
  #5 (permalink)  
Antiguo 07/07/2003, 21:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Gracias e-miliox por leerte e "interpretarnos" el manual de Mysql .. Me quedó claro a mi también.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 07/07/2003, 21:32
Avatar de e-miliox  
Fecha de Ingreso: noviembre-2002
Ubicación: San Antonio - Chile
Mensajes: 223
Antigüedad: 21 años, 5 meses
Puntos: 7
el ingles no es problema... siempre listo

saludos cluster
__________________
=PoWeReD By MySeLf!=
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 21:51.