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

¿Cómo importar más de 100000 registros a una base de datos mysql?

El mensaje de error es bastante claro y le indica cuál es el problema:la limitación del tiempo de ejecución en su entorno php. Entonces, algunos enfoques para resolver esto son obvios:

  1. aumente el límite de tiempo de su entorno

Puede hacerlo elevando el límite en su configuración de php o, si está permitido, aumentándolo dinámicamente dentro de su secuencia de comandos de importación. Algo como ini_set('max_execution_time', 3000) . Ambas opciones están documentadas. La documentación de php debe siempre ser el primer lugar donde debe comenzar a buscar una respuesta a tal pregunta.

  1. usar un entorno php diferente

Por lo general, dicha limitación se elige para un entorno web para reducir los riesgos de atender solicitudes de cualquier persona. Sin embargo, nada habla en contra de usar una configuración diferente para otro entorno. Los trabajos de importación normalmente no procesado mediante el uso de solicitudes web, pero mediante el uso de php en la línea de comandos (CLI). Por lo general, se usa una configuración separada. Una vez más, esto está documentado. Eso es lo que puedes usar aquí para configurar ambos entornos diferentes entre sí según tus necesidades. Sin embargo, para esto necesita acceso a php en CLI. Eso no es un problema en su propio sistema, pero generalmente no está disponible en un servicio de alojamiento web económico.

  1. divida su importación en partes más pequeñas

Dado que los datos que importa se almacenan en un archivo sql, por lo que es un archivo de texto simple, puede usar cualquier editor de texto común para modificar ese archivo. Nota:un editor de texto, no un procesador de textos. Puede dividir el gran INSERT declaración contenida allí en varios fragmentos. La sintaxis es bastante obvia.

  1. use muchas instrucciones de inserción separadas en lugar de una grande

Dependiendo de la herramienta que use para crear ese archivo de volcado que está tratando de importar, ahora tiene la opción de crear el volcado de modo que use muchos INSERT separados declaraciones (una para cada fila) en lugar de una grande y combinada. mysqldump por ejemplo, ofrece el --skip-extended-insert bandera para esto. Con un archivo de volcado de este tipo, es trivial dividir la importación en varios fragmentos más pequeños simplemente dividiendo el archivo.

  1. Omita php para la importación por completo

Si tiene acceso directo a su servidor de base de datos (MySQL en este caso), simplemente puede interactuar directamente con él en lugar de usar phpMyAdmin herramienta intermedia. Simplemente puede cargar su archivo de volcado directamente por medio de MySQLs source dominio. De esa manera eres completamente independiente de las limitaciones de php.