O.T.: Se puede hacer este tipo de copias en linea de comandos MySQL?

95 views
Skip to first unread message

Alejandro Garcia G.

unread,
Jun 16, 2018, 11:58:27 AM6/16/18
to Comunidad de Visual Foxpro en Español
Saludos,

Yo no habia utilizado nunca HeidiSQL y por sugerencia de un amigo lo baje. Lo hice ya que cuando uno hace una copia de una base de datos (MySQL), uno puede darle vairas opciones entre ellas hay una que quisiera hacer cuando respaldo de manera manual y es un apartado que dice "Tamaño Máx. INSERT" y allí uno puede definir un peso en KB o algo así. ¿Esto se puede hacer por línea de comandos, cómo se hace?.

Gracias.

almonts ( www.ontarioxb.es )

unread,
Jun 16, 2018, 6:47:41 PM6/16/18
to Comunidad de Visual Foxpro en Español
La pregunta es, porqué motivo deseas definir esto en los INSERT ?.

Alejandro Isla

unread,
Jun 16, 2018, 11:10:03 PM6/16/18
to Comunidad de Visual Foxpro en Español
Para que la longitud del insert quede reducida y los puedas manejar a cada uno de ellos en forma independiente sin saturar la memoria del sistema con un único insert gigantesco.

Capaz no recuerdes que la instrucción insert te permite ingresar varios registros con una sola instruccion insert (la forma INSERT INTO tanla  VALUES (v1reg1,v2reg1,v3reg1),(v1reg2,v2reg2,v3reg2),(v1reg3,v2reg3,v3reg3),...)

Si tienes 1.000.000 de registros te queda una linea de longitud mostruosa.

Con el limit, al llegar la línea a dicho límite, la "cierra" y empieza un nuevo insert con el resto de los datos, repitiendo el corte cuantas veces sea necesario.

Alejandro Isla

unread,
Jun 16, 2018, 11:11:44 PM6/16/18
to Comunidad de Visual Foxpro en Español
Creo que en el mysqldump con la opcion --extended-insert podias hacer eso, en realidad me parece que hace que te inserte un registro por insert, lo que tambien pued ser engorroso. No recuerdo si permitia un limite en kb o nro. de registros.

Saludos.

Alejandro Garcia G.

unread,
Jun 18, 2018, 4:19:06 PM6/18/18
to Comunidad de Visual Foxpro en Español
Gracias por la respuesta.

Esa la he estado utilizando con la opción -e cuando ejecuto el MySQLDump, pero queria saber si puedo hacer que cada insert contenga X cantidad de registros, por ejemplo 100 o 10000 o algo así.


Mis copias las hago bien y me slaen bien pero al restaurar en diferentes sevidores, con la misma versión del MySQL, algunos demoran mucho otros no tanto, veo que me restaura como de a uno en uno.

Es para despejar esa duda nada mas.

Alejandro Isla

unread,
Jul 4, 2018, 1:49:59 PM7/4/18
to Comunidad de Visual Foxpro en Español
Creo que encontré la respuesta a tu consulta; en el mysqldump podes usar la opcion --net_buffer_length=cantidad_de_byte; ej:
--net_buffer_length=512

De esa forma, cuando el insert supera dicho valor, corta y genera un nuevo insert; si bien no es por cantidad de registros, estimo es una buena solución al problema.

Debes cuidar de no exeder el valor de la configuracion del server mysql, el valor por defecto es 16384 y el minimo 1024 (si te manejas con 1024 o menos para tu backup estas seguro)


net_buffer_length en el servidor mysql
Default Value 16384
Minimum Value 1024
Maximum Value 1048576

Saludos.

El sábado, 16 de junio de 2018, 12:58:27 (UTC-3), Alejandro Garcia G. escribió:
Reply all
Reply to author
Forward
0 new messages