Foros del Web » Programando para Internet » PHP »

Cómo exporta PhpMyAdmin ???

Estas en el tema de Cómo exporta PhpMyAdmin ??? en el foro de PHP en Foros del Web. Hola. Veo que aunque la tabla pese 200 MB, PhpMyAdmin exporta la tabla comprimida para descargarla en menos de 7 segundos. Sin embargo cuando ( ...
  #1 (permalink)  
Antiguo 10/03/2013, 12:25
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 10 meses
Puntos: 22
Cómo exporta PhpMyAdmin ???

Hola.

Veo que aunque la tabla pese 200 MB, PhpMyAdmin exporta la tabla comprimida para descargarla en menos de 7 segundos.

Sin embargo cuando (en el mismo servidor y con el mismo user y password) yo hago un "SELECT * FROM tabla;" e intento almacenar el resultado en el BUFFER me devuelve un error de memoria.

¿cuál es el "truco" que utiliza PhpMyAdmin para hacer la exportación?

Gracias
  #2 (permalink)  
Antiguo 10/03/2013, 12:30
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Cómo exporta PhpMyAdmin ???

No creo que haya "truco" sino técnica, a lo que, siendo phpMyAdmin OpenSource podrías revisar el código fuente y descubrir por ti mismo cómo lo hace.

Dudo que un usuario promedio del foro de PHP tenga conocimiento del "truco", no creas que por tratarse de PHP aquí se sabe de todo, como si fuéramos máquinas.

Y sabes, esa es una de las ventajas del OpenSource, si quieres saber como se hace algo puedes descargar el código y lo estudias.

No necesitas ir preguntando por foros ya que esa debería ser la actitud natural de quien busca saber más.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 10/03/2013, 12:52
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 10 meses
Puntos: 22
Respuesta: Cómo exporta PhpMyAdmin ???

Cita:
Iniciado por pateketrueke Ver Mensaje
No necesitas ir preguntando por foros ya que esa debería ser la actitud natural de quien busca saber más.
export.php: SELECT * FROM `bd`.`tabla` LIMIT 95117

Este es el SQL que corre PhpMyAdmin desde el archivo export.php.

Hace semanas intento "detectar" que hace PMA con el resultado.

Lo único que he logrado "pillar" es que ellos utilizan mysql_unbuffered_query() y no nuestro tradicional mysql_query().

Uno de los archivos clave es mysql.dbi.lib.php.


No sé de donde traigas algo de ira o de mal humor hacia mi...
No se de donde sacas que "no he buscado" o consultado...
Al parecer algun mal humor traes hacia mí.

No tienes por que lanzar acusaciones o indirectas...

Cuando quieras elimina mi cuenta o suspende mi usuario...

Quizas así logres un poco de calma y tranquilidad emocional.

Si alguien puede y quiere aportar algo a mi pregunta, gracias.
  #4 (permalink)  
Antiguo 10/03/2013, 12:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Cómo exporta PhpMyAdmin ???

No no, tranquilo, no es nada personal, simplemente hablo en general.

La comunidad OpenSource trabaja así, de igual forma los foros técnicos tienes sus propias reglas.

Si en el tema inicial hubieras colocado eso que descubriste leyendo el código de phpMyAdmin la platica hubiera sido distinta, pero como no fue así simplemente lo tomé como un tema carente de objetividad. De ningún lado he sacado que no has buscado, pero si no lo mencionas, ¿como iba yo a deducir ello?

Que escriba de esa forma no implica que sea algo contigo, como usuario, para la próxima trataré de comunicar todo a nivel general, aunque poco se entienda el contexto.

Traducción:
Cita:
El usuario interesado en el conocimiento tecnológico no tiende a ir preguntando por foros ya que su actitud natural es la de buscar para saber más, compartir para ahondar más y practicar para entender.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 10/03/2013, 19:39
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 7 meses
Puntos: 2135
Respuesta: Cómo exporta PhpMyAdmin ???

Pues ya tú mismo lo haz encontrado, debes de usar mysql_unbuffered_query para poder procesar una tabla tan grande sin llenar la memoria del buffer de PHP.
  #6 (permalink)  
Antiguo 10/03/2013, 22:29
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 10 meses
Puntos: 22
Respuesta: Cómo exporta PhpMyAdmin ???

Cita:
Iniciado por GatorV Ver Mensaje
debes de usar mysql_unbuffered_query para poder procesar una tabla tan grande sin llenar la memoria del buffer de PHP.
Pero debo hacer un:

DO...
$archivo.=$resultado_de_BD;
WHILE...

y entonces $archivo será grandísimo...

Cómo enviar la salida de descarga en archivo.zip sin recibir warning de memoria ni de tiempo...

???
  #7 (permalink)  
Antiguo 10/03/2013, 23:03
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 7 meses
Puntos: 2135
Respuesta: Cómo exporta PhpMyAdmin ???

Pues dependiendo de como generes archivo.zip, sí es lo básico un do while, y vas escribiendo en el archivo, así no ocupas tanta memoria.

Ahora sí lo quieres generar inline, pues sí vas a tener que incrementar la memoria, o generar un archivo temporal y enviar ese archivo temporal al cliente.
  #8 (permalink)  
Antiguo 11/03/2013, 06:31
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 10 meses
Puntos: 22
Respuesta: Cómo exporta PhpMyAdmin ???

Cita:
Iniciado por GatorV Ver Mensaje
Pues dependiendo de como generes archivo.zip, sí es lo básico un do while, y vas escribiendo en el archivo, así no ocupas tanta memoria.
Yo precisamente estoy utilizando $QUERY=MYSQL_UNBUFFERED_QUERY("SELECT * FROM tabla;");

Luego hago el

$file.=resultados;

Y en esa linea se me cuelga PHP...

Retorna error de Memoria, pero con PMA no sucede. PMA devuelve el file en 5 o menos segundos.
  #9 (permalink)  
Antiguo 11/03/2013, 09:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 7 meses
Puntos: 2135
Respuesta: Cómo exporta PhpMyAdmin ???

¿y ya viste que es lo que hace PMA?

Como te dice Pateketrueke, es más fácil si ves el código fuente, no creo que anexen todo a una sola variable, pero son suposiciones, y solamente algún experto en PMA te puede decir, o que tú mismo veas el código fuente para ver lo que hace...

Etiquetas: exporta, phpmyadmin, select, tabla
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 11:00.