¿Alguien sabe si la eliminación de los nombres de campo de una consulta INSERT resulta en algunas mejoras de rendimiento?SQL INSERT performance ¿omite los nombres de campo?
quiero decir es esto:
INSERT INTO table1 VALUES (value1, value2, ...)
más rápido para DB que se lleva a cabo en lugar de hacer esto:
INSERT INTO table1 (field1, field2, ...) VALUES (value1, value2, ...)
?
Sé que probablemente sea una diferencia de rendimiento sin sentido, pero solo para saber.
Normalmente estoy usando MySQL y PostgreSQL como DB.
1 Estoy de acuerdo en principio, pero se preguntó - ¿no es así tiene que consultar el esquema en el último caso para las definiciones de columna/valores predeterminados de todos modos? – Andy
@Andy: quizás sea así, pero solo para un subconjunto de los campos, los que especifique. Para INSERTAR, la diferencia puede ser extremadamente marginal, pero para SELECTs, definitivamente vale la pena especificar los campos explícitamente, también por razones de velocidad –
+1 Y también la legibilidad sería realmente mala para una consulta insertada con 10 columnas, por ejemplo, si no especifica los nombres de las columnas. –