Foros del Web » Programando para Internet » PHP »

servidor mysql -> servidor. duda sobre mecanismo

Estas en el tema de servidor mysql -> servidor. duda sobre mecanismo en el foro de PHP en Foros del Web. que tal, pues tenia una duda sobre la trasferencia de datos de un servidor con una bdd mysql a un otro servidor, mi pregunta es, ...
  #1 (permalink)  
Antiguo 24/12/2004, 12:28
Avatar de xcorpion  
Fecha de Ingreso: octubre-2003
Ubicación: m é x i c o
Mensajes: 676
Antigüedad: 20 años, 6 meses
Puntos: 4
servidor mysql -> servidor. duda sobre mecanismo

que tal, pues tenia una duda sobre la trasferencia de datos de un servidor con una bdd mysql a un otro servidor, mi pregunta es, todos los datos de una seleccion se transfieren al ser seleccionados (SELECT) o al extraerlos(mysql_fetch_array)?, lo que pasa es que estoy utilizando un servidor independiente para la bdd y otro para ejecutrar mis scripts y el problema es que es una base de datos enorme(60MB) cualquier error podria gastar el bandwith de los servidores.
  #2 (permalink)  
Antiguo 25/12/2004, 11:48
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
1. El parser de php detecta la sentencia SQL dentro de alguna función válida.
2. El servidor ejecuta la consulta y guarda la respuesta en su memoria.
3. Tu envias al cliente lo que gustes.
  #3 (permalink)  
Antiguo 25/12/2004, 12:53
Avatar de xcorpion  
Fecha de Ingreso: octubre-2003
Ubicación: m é x i c o
Mensajes: 676
Antigüedad: 20 años, 6 meses
Puntos: 4
no mira creo que no entendiste el concepto, tengo un servidor con la bdd del otro lado del mundo tengo otra servidor, desde este ultimo hago una conexion al primer servidor con la bdd y hago algunas consultas, mi duda es se trasnfieren todos los datos desde la ejecucion del select o hasta que se empiezan a extrael los datos con el mysql_fetch_array porejemplo, en ningun punto no me interesa la comunicacion con el cliente.
  #4 (permalink)  
Antiguo 27/12/2004, 06:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues .. olvidate de dar salida al cliente .. conecta a tu BD 1 y a la BD 2 (crenado los links de conexión de ambas) .. haz el "SELECT" a tu B1 y los INSERT o UPADATE a la BD2.

Pero .. en SQL y Mysql de por sí tienes algunas sentencias como "mysql_dump" (no recuerdo bien .. es un comando no SQL) para hacer volcados de SQL y "LOAD DATA" (SQL) para cargar archivos SQL que leas de algún sitio donde los generastes.

Si puedes ejecutar sentencias SQL de ese tipo y comandos en tu servidor .. podrías hacer ese proceso muchoooo más rápido que hacer un "SELECT" .. componer los "INSERT" vía PHP para generar tu .sql y luego el proceso inverso para restaurar tu BD en el otro servidor.

También tienes GUI's para Mysql especiales para ese tipo de transferencias entre dos servidores Mysql tipo SQLYog: http://www.webyog.com/index.php

Un saludo,
  #5 (permalink)  
Antiguo 27/12/2004, 11:39
Avatar de xcorpion  
Fecha de Ingreso: octubre-2003
Ubicación: m é x i c o
Mensajes: 676
Antigüedad: 20 años, 6 meses
Puntos: 4
gracias por tu respuesta e interes cluster pero creo que aun todabia no entienden mi pregunta, no tiene nada que ver con archivos sql, creo que tu me estas sugiriendo una forma de transladar la bdd entre dos servidores pero este no es el caso. Boy a tratar de explicarme mejor con ejemplos ustedes me dicen cual es el que es real.

{Antecedentes: Servidor A aloja una bdd mysql de 70MB, Servidor B aloja un website que ejecuta scripts PHP que requieren datos de la bdd alojada en A}

Primer supuesto:
1. Desde el servidor B creo una conexion sql al servidor A.
2. Selecciono la bdd
3. Hago una seleccion mediante SELECT a una tabla en la bdd seleccionada. la seleccion abarca la mitad de los registros(unos 35MB).
4. Entonces tengo que esperar a que los datos de la seleccion se transfieran del servidor A al servidor B antes de que pueda extraerlos mediante mysql_fetch_array o mysql_fetch_row

segundo supuesto:
1. Desde el servidor B creo una conexion sql al servidor A.
2. Selecciono la bdd
3. Hago una seleccion mediante SELECT a una tabla en la bdd seleccionada. la seleccion abarca la mitad de los registros(unos 35MB).
4. cada vez que extraiga datos mediante mysql_fetch_array se transfiere el dato correspondiente sin tener que esperar.
  #6 (permalink)  
Antiguo 27/12/2004, 13:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ok, ahora me quedó claro el panorama ..

Para agilizar algunas taréas repetitivas de conexión y más con el tiempo que se tarda en conectarse, negociar el "usuario/password" y demás .. podrías usar conexiones persistentes (mysql_pconnect()).

Los datos que tu obtienes de tu sentencia SQL ejecutada son los que gestionará PHP con sus funciones mysql_xxxx() .. esto es así tanto en "local" como en "remoto" (hablando de la conexión a tu BD). PHP asigna un tamaño de memoria total para la ejecucción de tus scripts .. si dices trabajar con tanto dato puede que tengas problemas por ahí y debas aumentar el tamaño de este parámetro.

En SQL siempre tienes funciones para optimizar procesos .. por ejemplo no usar mysql_num_rows() en casos que puedas usar COUNT() (por ejemplo si sólo necesitas un total de registros pero no los registros en sí).

En PHP puedes optimizar memoria liberandola cuando ya no uses tus "record-set" obtenidos usando funciones como mysql_free_result() ...


Un saludo,
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 09:04.