Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: bomba1990 en 25 Junio 2010, 19:07 pm



Título: mysql: duda de rendimeinto
Publicado por: bomba1990 en 25 Junio 2010, 19:07 pm
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.


Título: Re: mysql: duda de rendimeinto
Publicado por: Shell Root en 25 Junio 2010, 21:26 pm
Si mal no recuerdo, para un INSERT multiple es así:
Código
  1. INSERT INTO tblPoC (id, nombre)
  2. VALUES (1, 'Alex'),
  3.       (2, 'Andres'),
  4.       (3, 'Oscar'),
  5.       (4, 'Pablo'),
  6.       (5, 'Felipe');


Título: Re: mysql: duda de rendimeinto
Publicado por: 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


Título: Re: mysql: duda de rendimeinto
Publicado por: Shell Root en 26 Junio 2010, 22:04 pm
Dependiendo de donde están situadas esa gran cantidad de datos.


Título: Re: mysql: duda de rendimeinto
Publicado por: Debci en 26 Junio 2010, 22:39 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


Título: Re: mysql: duda de rendimeinto
Publicado por: Shell Root 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:


Título: Re: mysql: duda de rendimeinto
Publicado por: bomba1990 en 27 Junio 2010, 19:04 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.


Título: Re: mysql: duda de rendimeinto
Publicado por: bomba1990 en 1 Julio 2010, 18:39 pm
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