Estoy desarrollando un proyecto, el cual, la base de datos se actualiza varias veces diariamente, y los datos provienen de diferentes catalogos, la estructura se compone de dos tablas previas (tabla1 y tabla2) que se llenan y se copian a tablafinal1 y tablafinal2, donde se almacena todos los catalogos, una vez introducidos tabla1 y tabla2 se TRUNCATE
el proceso es el siguiente:
de una url via:
Cita:
obtengo un catalogo que inserto dos tablas previas (MyIsam), sin indices con :Editado: Código de programación no permitido en foros de Bases de Datos.
Leer las normas del foro, por favor.
Leer las normas del foro, por favor.
Código MySQL:
y Ver original
Código MySQL:
Ver original
Los datos se insertan sin problemas.
Posteriormente hago una limpieza de registros en tabla 1 y tabla 2 (registros sin precio, sin IVA etc...) con DELETE rn tabla1 y tabla2
Posteriormente hago, teniendo en cuenta que ambas tablas tienen una columna comun(productid), que los productid que no se encuentren en las dos tablas se eliminen con:
Código MySQL:
y finalmente hago un insert a las correspondites tablafina1 y tablafinal2.Ver original
tablafinal1(Innodb) con productid PK e indice único y dos indices en dos columnas y tablafinal2 (Innodb) con productid FK e idice único. Se insetan siin problemas, salvo cuando hay algun productid que se repita.
El problema que tengo es que hay catalogos con mas de 500.000 registros y los insert tardan mucho.
De qué manera puedo agilizar la inserción de registros, debo cambiar el proceso de inserción de registros? alguna recomendación? hay algun generador de id's para evitar indice único?me servirría para esta arquitectura uniqid de php?