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

¿Qué significa cuando digo que la declaración preparada está precompilada?

Cuando usa una declaración preparada (es decir, una declaración precompilada), tan pronto como DB obtiene esta declaración, la compila y la almacena en caché para que pueda usar la última declaración compilada para llamadas sucesivas de la misma declaración. Por lo tanto, se vuelve precompilado para llamadas sucesivas.

Por lo general, utiliza declaraciones preparadas con variables de vinculación donde proporciona las variables en tiempo de ejecución. Ahora, lo que sucede para la ejecución sucesiva de declaraciones preparadas, puede proporcionar las variables que son diferentes de las llamadas anteriores. Desde el punto de vista de la base de datos, no tiene que compilar la declaración cada vez, solo insertará las variables de vinculación en el momento del ron. Entonces se vuelve más rápido.

Otras ventajas de las declaraciones preparadas son:-

1) protección contra ataques de inyección SQL

2) Más rápido para llamadas sucesivas de las mismas declaraciones

Cómo funciona :-

  1. La precompilación la realiza la base de datos. Algunas bases de datos más simples no precompilan sentencias en absoluto. Otros pueden precompilarlo en la llamada a prepareStatement, y otros pueden hacerlo cuando se llama a la ejecución por primera vez en la declaración, teniendo en cuenta los valores de los parámetros al compilar (crear un plan para) la declaración.

  2. Las bases de datos que precompilan declaraciones generalmente las almacenan en caché, por lo que es muy probable que ps1 no se vuelva a compilar. Algunos controladores JDBC (por ejemplo, los de Oracle) incluso almacenan en caché las declaraciones preparadas, por lo que en realidad no lo han cerrado cuando se llamó a ps.close().

  3. Las bases de datos generalmente almacenan en caché las declaraciones hasta que algo las expulsa del caché.

Para obtener más información, consulte esta wiki enlace