¿Hay alguna manera de evitar que ActiveRecord emita un SHOW FIELDS a la base de datos cuando no es necesario?Evite SHOW FIELDS en ActiveRecord
Estoy trabajando en la aplicación crítica del rendimiento de la base de datos, y acabo de notar que en una consulta típica mi SELECT toma 0.5 ms y el SHOW FIELDS relacionado toma 2 ms - ¡4 veces más! Aún más importante, porque no es necesario, porque ya estoy especificando la única columna que desea recuperar:
UsersAddress.find(:all, :conditions => {:user_id => 1}, :select => :address_id)
UsersAddress de carga (0,5 ms) address_id SELECT
users_addresses
DONDE (.users_addresses
user_id
= 1)Columnas UsersAddress (2.1ms) VER CAMPOS DE
users_addresses
Por supuesto, esto sólo ocurre una vez cada vez que alguna mesa se toca por primera vez, pero ¿no debería ser completo? Antes que nada, esa información ya está en mi esquema. Segundo, no lo necesito.
¿Alguna idea de cómo optimizar esto para que Rails no ejecute un SHOW FIELDS a menos que realmente lo necesite?
Gracias!
Gracias. Supongo que no me preocuparé por eso entonces. Tiene sentido por qué se verificaría en el modo dev ... en caso de que cambie mi modelo. –
Lo que estás notando es parte de 'cache_classes = false'. – Eric