Ante todo un saludo.
Estoy tratando de optimizar un script que funcionaba bien, pero que de pronto comenzó a colapsar cuando la tabla pasó los 100 mil registros.
Basicamente lo que hace es preguntar si existe un registro en la tabla y sino, pues lo inserta, pero la cosa se ha puesto lenta porque hace un ciclo para pregunta.
Un poco del código
Código MySQL:
Ver original
Cita:
Como pueden ver, hay un ciclo foreach (para un arreglo de 100 mil entradas) y en cada ciclo pregunta si el valor está o no, para insertarlo.Editado: Código de programación no permitido en Foros de BBDD. Leer las normas del foro, por fvor.
Pensé en usar INSERT IGNORE para evitar el SELECT COUNT(*), más o menos asi:
Código MySQL:
Ver original
Cita:
sin embargo, debo ejecutar una función después de un insert efectivo (la función mensaje_directo) y en este caso dicha función se ejecutaría AUNQUE LA CLAVE ESTÉ DUPLICADA y eso sería desastroso.Editado: Código de programación no permitido en Foros de BBDD. Leer las normas del foro, por fvor.
Debo poder ejecutar el INSERT IGNORE y luego poder evaluar ¿Se inserto el registro? para poder decidir si ejecutar la función o no.
Espero haberme explicado y agradeciendo de antemano sus comentarios.
Luis Vásquez