mysql: duda de rendimeinto

Iniciado por bomba1990, 25 Junio 2010, 19:07 PM

0 Miembros y 1 Visitante están viendo este tema.

bomba1990

hola, planteo mi duda a ver si laguine me puede ayudar, leevo trabajando un tiempito con mysql y me a tocado hacer un programa que tiene que trabajar con grandes cantidades de datos y mysql y para mejorar el rendimeinto pido ayuda.

cuando meto valores en la base de datos los meto uno por uno, es decir meto insert int... pepe, insert int... pepe2. insert int... pepe3, insert int... pepe4 y haci por el estilo hasta que se termine, ahora bien me pregunto si es mejor o mas rapido hacer que el programa los relacione todos y despues los meta de un solo golpe, ej: insert into pepe,pep1,pepe2,pep3, ...

otra duda que tengo es que cada ves que meto un valor hago una consulta antes a ver si el valor existe o no, pero por hay lei en este foro que habia una manera de meterlo sin necesidad de consultar si existe o no. Espero que me puedan ayudar y gracias de ntemano.
"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve

Shell Root

Si mal no recuerdo, para un INSERT multiple es así:
Código (sql) [Seleccionar]
INSERT INTO tblPoC (id, nombre)
VALUES (1, 'Alex'),
       (2, 'Andres'),
       (3, 'Oscar'),
       (4, 'Pablo'),
       (5, 'Felipe');
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

bomba1990

si tienes razon a lo que me refiero es que que opcion es mejor caundo tienes que meter grandes cantidades de datos de un solo golpe en una base de datos meter una por una o meterlas todo con un insert multiple
"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve

Shell Root

Dependiendo de donde están situadas esa gran cantidad de datos.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Debci

Cita de: bomba1990 en 26 Junio 2010, 20:35 PM
si tienes razon a lo que me refiero es que que opcion es mejor caundo tienes que meter grandes cantidades de datos de un solo golpe en una base de datos meter una por una o meterlas todo con un insert multiple
Creo que siempre es mejor plantear una sola querie que no varias, pues el interprete de SQL no tiene que procesar una y otra vez lo mismo, si no que lo hace una vez.

Saludos

Shell Root

Lastima que eso solo se pueda en MSSQL y no en MySQL... <en MySQL no se pueden hacer varias querys por consulta> :silbar:
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

bomba1990

Cita de: shellroot@alex-laptop:~$ en 26 Junio 2010, 23:11 PM
Lastima que eso solo se pueda en MSSQL y no en MySQL... <en MySQL no se pueden hacer varias querys por consulta> :silbar:

no se pueden hacer varias querys por consulta, pero se puede hacer una sola consulta como tu dijiste mas arrbia para meter valores multiples. Y ha eso es lo qu eme refiero si es mejor hacer una consulta con multiple insercion o ir metiendo uno por uno en consultas diferentes.
"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve

bomba1990

ya cosnegui la respuesta d elo que queria saber gracias igual por ayudar. si uso inert ignore into, se meten los datos y si existen no da error de entrada duplicada
"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve