Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Máximo de registros continuos en una BD

Estas en el tema de Máximo de registros continuos en una BD en el foro de Mysql en Foros del Web. Dado el siguiente código: Código: <html> <body> Hmtl... ok<br><br> <?php //Conectar a la base de datos. @ $db = mysql_pconnect('192.168.1.91', 'root', '*******); if (!$db) { ...
  #1 (permalink)  
Antiguo 20/11/2008, 09:34
Avatar de Dude--  
Fecha de Ingreso: junio-2004
Ubicación: Sevilla - España
Mensajes: 197
Antigüedad: 19 años, 10 meses
Puntos: 4
Máximo de registros continuos en una BD

Dado el siguiente código:

Código:
<html>
<body>
Hmtl... ok<br><br>
<?php
//Conectar a la base de datos.
@ $db = mysql_pconnect('192.168.1.91', 'root', '*******);
if (!$db)
{
echo 'Error: No se ha podido conectar a la base de datos.';
exit;
}
mysql_select_db('pruebas');

echo 'Conexión a la BD... ok';

//Fin de conexión a la BD

for ($i=0; $i<2000000000; $i++) //2.000.000.000
{
	
//Meterle registros a tutiplen a la BD.
$insertar = "insert into clientes set nombre='Enrique'";
$resultado = mysql_query($insertar);

if ($resultado)
{
echo  '
<br>'.$i.'. '.mysql_affected_rows().' DATOS INSERTADOS EN LA BD.<br><br>
'; 
}
else
{
echo '
<br>'.$i.'. <strong>NO se ha registrado ningún dato.</strong><br><br>
'; }
}

//Terminar la secuencia.
echo '<br><br>FINNNNNNNNNNNNNNNNNNNNNNNNNN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!';
?>
</body>
</html>
Y la tabla con dos columnas:
cID ( autoincrement, BIGINT(20) )
nombre ( text(10) )

Se supone que este código debería insertar 2.000.000.000 registros en la BD, sin embargo el bucle for se para en 1400 y pico, "se para", la web aparece como que ya no esta trabajando (como si hubiera terminado de cargarse), no aparecen nuevas notificaciones en pantalla, no se aprecian nuevos registros en la BD pero tampoco aparece el mensaje de FINNN así que no se que ocurre llegado a este punto de la iteración. Pensé que podría ser algún tipo de límite en la estructura de control "for", sin embargo al /*comentar*/ el registro de datos en la BD este no se detiene, luego debe ser un problema con mysql.

Por cierto todo esto se esta haciendo a nivel máquina local, no en un host, así que descartamos la línea como problema.

¿Alguna idea de como aumentar ese numero de risa hasta algo decente?

Gracias por vuestro tiempo.

Última edición por Dude--; 20/11/2008 a las 09:40
  #2 (permalink)  
Antiguo 20/11/2008, 09:55
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Máximo de registros continuos en una BD

Ya me están doliendo mis ojitos :)

Cita:
Se supone que este código debería insertar 2.000.000.000 registros en la BD, sin embargo el bucle for se para en 1400 y pico, "se para", la web aparece como que ya no esta trabajando (como si hubiera terminado de cargarse), no aparecen nuevas notificaciones en pantalla, no se aprecian nuevos registros en la BD pero tampoco aparece el mensaje de FINNN así que no se que ocurre llegado a este punto de la iteración.
Estas trabjando en php, este no es el foro adecuado pero igual te voy a contestar
Dentro del php.ini hay una directiva que se llama max_execution_time que por lo general esta en 30, esto quiere decir que si la ejecución de script supera los 30 segundo el servidor automáticamente lo va parara, por seguridad.

¿que pretendes probar con esa cantidad de registros?

Existen maneras mas eficientes de subir cantidades enormes de de data.

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #3 (permalink)  
Antiguo 20/11/2008, 10:19
Avatar de Dude--  
Fecha de Ingreso: junio-2004
Ubicación: Sevilla - España
Mensajes: 197
Antigüedad: 19 años, 10 meses
Puntos: 4
Respuesta: Máximo de registros continuos en una BD

Cita:
Iniciado por Genetix Ver Mensaje
Ya me están doliendo mis ojitos :)


Estas trabjando en php, este no es el foro adecuado pero igual te voy a contestar
Dentro del php.ini hay una directiva que se llama max_execution_time que por lo general esta en 30, esto quiere decir que si la ejecución de script supera los 30 segundo el servidor automáticamente lo va parara, por seguridad.

¿que pretendes probar con esa cantidad de registros?

Existen maneras mas eficientes de subir cantidades enormes de de data.

Saludos!
En primer lugar gracias por tu tiempo y tu ayuda, lo postee en esta sección porque pensaba que el problema tenía que ver con mysql y no con php. Voy a mirar eso que comentas (max_execution_time) a ver si da resultado, de todas formas si fuera ese el caso ¿no debería también detenerse con la inserción de registros comentada tal y como dije? es decir, solo el bucle y la muestra de iteraciones en el navegador. La cuestión es que no ocurre así, no se detiene aun pasado los 30 segundos, de hecho tuve que detener manualmente el navegador cuando iba por los 150.000 muestreos ya que se estaba ralentizando bastante.

Con esta cantidad de registros pretendo hacer una pequeña simulación para un proyecto que va a necesitar una cantidad mucho mayor de registros, unos 9.000.000.000, no quiero encontrarme los problemas gordos cuando el desarrollo ya este avanzado, y aunque mi intención inicial no era comprobar el tamaño que alcanzaba la BD sino ver como se comportaba un equipo ante ese número de registros te agradecería igualmente, ya que lo comentas, que me dieras más detalles sobre como subir cantidades de data de forma más eficiente.
  #4 (permalink)  
Antiguo 20/11/2008, 11:35
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Máximo de registros continuos en una BD

Te vas a encontrar necesariamente con problemas gordos, aunque se trate de una intranet.
Estás tratando de cargar datos masivos. Eso requiere de bastante cuidado y algo de conocimiento de redes.
El proceso PHP no se detiene porque no responda el server porque estás hablando de cosas distintas. La transacción hacia la base de datos y la conexión creada en web es una cosa distinta del proceso de creación y buffereo de las sentencias. Estas se están encolando, pero no salen. Eventualmente colapsará el buffer, pero eso llevará más tiempo.
Lo que te conviene es buscar otras técnicas, como por ejemplo, inserciones múltiples, o exportar la base ya cargada, o bien hacer un LOAD DATA local en el servidor de web.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 20/11/2008, 11:57
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Máximo de registros continuos en una BD

Cita:
El proceso PHP no se detiene porque no responda el server porque estás hablando de cosas
Así es, el server es quien detiene el proceso.

Si deseas probar tu sistema o tu db con bastante data y trafico para existe las herramientas de stress, que evalúan el rendimiento de los mismos, haciendo simulaciones de carga, de trafico, etc

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #6 (permalink)  
Antiguo 20/11/2008, 13:41
Avatar de Dude--  
Fecha de Ingreso: junio-2004
Ubicación: Sevilla - España
Mensajes: 197
Antigüedad: 19 años, 10 meses
Puntos: 4
Respuesta: Máximo de registros continuos en una BD

Gracias por la info a ambos.

Genetix ¿podrías decirme el nombre de alguna de esas tools que mencionas?
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 02:07.