Estoy usando Ruby on Rails 3.0.7 y me gustaría saber, con respecto al rendimiento, cuáles son las diferencias entre el método User.find(<id>)
y el método User.where(:id => <id>)
.Diferencias de rendimiento entre los métodos '.find' y '.where'
Respuesta
Debajo del capó, find
hace más o menos lo que está describiendo con su where
. Puede encontrar los detalles en this post. Dicho esto, si está buscando obtener un solo registro por ID, entonces es posible que desee utilizar find_one
. Eso es lo que find
termina haciendo cuando lo llamas con un único argumento de una identificación, pero pasarás por alto el resto del código que necesita ejecutar para descubrir que eso es lo que querías.
Respuesta breve, pero: realmente no importa (a menos que no tenga una restricción única en su columna id
).
+1 Es posible que desee elaborar, esto es porque find siempre devuelve un solo registro. Donde devuelve todos los registros coincidentes a menos que se proporcione un límite. – diedthreetimes
Entonces, si tengo una restricción única en mi columna 'id', ¿cuál es la mejor forma de "rendimiento"? – user502052
No importa. '.find' no necesitaría asignar una matriz (pero eso es un detalle de implementación que no debería importar). La razón para usar '.find' es:' .find (foo) 'es mucho más legible que' .where (: id => foo) .first'. –
- 1. diferencias entre los métodos de JVM no sincronizadas sincronizados y
- 2. Rails .where vs .find
- 3. Find() vs. Where(). FirstOrDefault()
- 4. Diferencias entre los métodos de recarga de las páginas
- 5. diferencias de rendimiento entre P/Invoke y C envolturas ++
- 6. diferencias de rendimiento entre depuración y liberación construye
- 7. ¿Diferencias de rendimiento entre las declaraciones de color?
- 8. Diferencia entre los métodos Map.put y Map.putAll?
- 9. diferencias entre memchr() y strchr()
- 10. Diferencias entre NoClassDefFoundError y ClassNotFoundException?
- 11. .where vs find. ActiveRecord :: Relation NoMethodError
- 12. Diferencias de rendimiento entre el uso de los selectores ": not" y ".not()"?
- 13. Diferencia entre eventos y métodos
- 14. diferencias de rendimiento entre los campos primitivos finales estáticos y no estáticos en Java
- 15. ¿Hay diferencias entre "y"
- 16. ¿Cuáles son las diferencias entre los métodos de conversión `ToXXXX` y` AsXXXX`?
- 17. FindByIdentity - diferencias de rendimiento
- 18. C# Diferencia entre First() y Find()
- 19. Diferencias entre MySQL y Oracle DB
- 20. Diferencias en los raíles entre nuevo + guardar y crear
- 21. Diferencias entre los controles WPF Frame y WebBrowser
- 22. Diferencias entre Proc y Lambda
- 23. Diferencias entre Sproutcore y Ember
- 24. Diferencia entre 'find -delete' y 'rm -rf'?
- 25. Diferencias entre Excepción y Error
- 26. Diferencias entre JPA y JPA2
- 27. Diferencias entre funtores y endofunctors
- 28. Diferencias entre Camel y BPEL
- 29. Diferencias entre AForge y OpenCV
- 30. Diferencias entre Perl y PHP
Este método ya no parece existir. –