sql >> Base de Datos >  >> RDS >> Mysql

Python:¿Qué pasa con mi código de múltiples procesos que se insertan en MySQL?

Sí, si está insertando de forma masiva 300 millones de filas en la misma tabla, entonces no debe intentar paralelizar esta inserción. Todas las inserciones deben pasar por los mismos cuellos de botella:actualizar el índice y escribir en el archivo físico en el disco duro. Estas operaciones requieren acceso exclusivo a los recursos subyacentes (el índice o la cabeza del disco).

En realidad, está agregando algunos gastos generales inútiles en la base de datos que ahora tiene que manejar varias transacciones simultáneas. Esto consume memoria, fuerza el cambio de contexto, hace que la cabeza de lectura del disco salte todo el tiempo, etc.

Inserta todo en el mismo hilo.

Parece que en realidad está importando datos de una especie de archivo CSV. Es posible que desee utilizar el LOAD DATA INFILE Comando MySQL, diseñado para este mismo propósito. Describa su archivo fuente si necesita ayuda para ajustar este comando.