Necesito insertar millones de filas en la base de datos MySQL (motor InnoDB). Tengo un problema con el tiempo cuando las tablas tienen tamaños grandes. Casi todo el tiempo se usa para insertar consultas. ¿Tal vez alguien sepa cómo optimizarlo?¿Cómo optimizar MySQL para insertar una fila de millones?
Respuesta
Para importar gran volumen de datos en InnoDB:
conjunto en la configuración de MySQL
- innodb_doublewrite = 0
- innodb_buffer_pool_size = 50% + sistema de memoria
- innodb_log_file_size = 512M
- log-bin = 0
- innodb_support_xa = 0
- innodb_flush_log_at_trx_commit = 0
Agregar justamente después del lanzamiento de transacción:
FOREIGN_KEY_CHECKS SET = 0;
SET UNIQUE_CHECKS = 0;
SET AUTOCOMMIT = 0;
Conjunto justo antes de final de transacción:
SET UNIQUE_CHECKS = 1;
SET FOREIGN_KEY_CHECKS = 1;
Estas optimizaciones me llevaron de hacer 10,000 registros cada 10 minutos a 500,000 registros, impresionante. – input
También establezca 'sync_binlog = 0' en caso de que se establezca en' 1' ('0' es el valor predeterminado) – zogby
@zogby con' log_bin = 0' binlog está completamente deshabilitado, por lo que 'sync_binlog = 0' no hace diferencia. – c2h5oh
Si habla de un gran número de declaraciones INSERT
, investigue algo que se llama transacciones. Estoy bastante seguro de que la mayoría de los lenguajes (si no todos) que hacen SQL admiten transacciones. Acelerarán cualquier cosa que implique escribir en la base de datos. Una ventaja adicional es que si algo sale mal, puede deshacer los cambios.
Ya estoy usando una transacción :) –
- 1. cómo optimizar consulta UPDATE para un mejor rendimiento de MySQL
- 2. ¿Cómo optimizar esta tabla MySQL?
- 3. Usando SqlDataAdapter para insertar una fila
- 4. ¿Cómo programar un disparador de MySQL para insertar una fila en otra tabla?
- 5. ¿Cómo optimizar esto en MySQL?
- 6. necesita ayuda para optimizar MySQL consulta
- 7. ¿Cómo puedo optimizar la consulta de MySQL para la actualización?
- 8. MySQL Insertar de clave duplicada
- 9. ¿Cómo configurar una fila de MySQL para READ-SOLAMENTE?
- 10. 30 millones de filas de MySQL
- 11. Cómo ordenar (millones/millones/...) enteros?
- 12. openxml - insertar una fila, mover otros
- 13. Última ID (identidad) En Insertar fila VB.NET MySQL
- 14. MySQL - ¿Cómo se puede optimizar esta consulta?
- 15. ¿Cómo insertar una fila sin ningún valor para que todas las columnas asuman su valor predeterminado?
- 16. ¿Cómo puedo insertar una fila en una tabla?
- 17. ¿Cómo insertar una ID única en cada fila de SQLite?
- 18. MySQL condicional Insertar
- 19. ¿Cómo optimizar una consulta anidada?
- 20. ¿Cómo insertar mediante programación una fila en un GridView?
- 21. Cómo configurar "insertar nueva fila" como primera fila en DataGridView
- 22. MySQL "buena" manera de insertar una fila si no se encuentra, o actualizarla si se encuentra
- 23. Ayuda de Mysql necesaria para optimizar grupo por sub consulta
- 24. Flask-SQLAlchemy: cómo insertar o actualizar condicionalmente una fila
- 25. Cómo insertar de 20 millones de registro en la base de datos MySql lo más rápido posible
- 26. cómo traerá sólo una fila de una consulta MySQL
- 27. ¿Cómo diseñar una clase apropiada para millones de asignaciones?
- 28. MySQL Fire Trigger para insertar y actualizar
- 29. Cómo optimizar aún más esta tabla de MySQL para una única consulta
- 30. Optimizar consulta de MySQL usando índices
¿cuál es su consulta? –
¿Qué quieres decir? –
¿Se realizan otras operaciones en la tabla mientras inserta los datos? – Kermit