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

Rust:¿Cómo ejecutamos un DML en MySQL con muchos parámetros?

No soy un programador de Rust, pero las consideraciones de rendimiento deberían ser similares independientemente del idioma de la aplicación.

Para este caso, simplemente prepararía una consulta para INSERTAR una fila, con parámetros para las columnas de esa fila. Luego ejecute un ciclo para ejecutar la consulta preparada con diferentes valores para los parámetros. Esto elimina del ciclo la sobrecarga de analizar el SQL, porque eso se hace solo una vez en el paso de preparación. Ejecutar esa consulta preparada no vuelve a analizar la declaración.

Espero que esto sea exactamente lo que exec_batch() está haciendo. Pero podría estar volviendo a preparar la declaración INSERT cada vez en el ciclo. Ese sería un enfoque ingenuo, pero no sé si el paquete Rust es ingenuo o no.

Si esto no tiene el rendimiento suficiente, debería considerar cargar grandes cantidades de datos usando CARGAR ARCHIVO DE DATOS [LOCAL] . Eso suele ser varias veces más rápido que cualquier instrucción INSERT, incluso con un conjunto de 1000 tuplas.

Puede que te guste mi presentación ¡Carga datos rápido! en el que comparé el rendimiento relativo de diferentes soluciones de importación de datos.