mysql - Does a database query that is ordered in memory require less server resource than including the order in the query of a Rails 3.2 app? -


we have rails 3.2 app has quite few database tables , hitting database quite often. thinking refactoring app place queries in 1 area of application controller. e.g.:

# database queries def get_users_in_a_group   @users_in_a_group = user.where("group_id = ?", current_group.id) end 

the same query ordered in variety of ways. example @users_in_a_group ordered username, date_of_birth or last_login depending on need. thinking of putting area application follows database queries area, e.g.

# ordered database queries def get_users_in_a_group_ordered_by_username   get_users_in_a_group   @users_in_a_group_ordered_by_username = @users_in_a_group.order("username") end  def get_users_in_a_group_ordered_by_last_login   get_users_in_a_group   @users_in_a_group_ordered_by_last_login = @users_in_a_group.order("last_login") end 

from have read, having fewer , simpler database queries better. think way scenario above works database hit once , ordering done in memory. better or worse on server resources querying database in order e.g.:

@users_in_a_group_ordered_by_last_login = user.where("group_id = ?", current_group.id).order("last_login") 

thanks help.

the general rule of thumb let sql can, , can't, let ruby/rails take over.

a small note add, well, take advantage of adding indices database commonly called large quantity tables.

if want compare sql loads, fire .irbc file , add :

if env.include?('rails_env') && !object.const_defined?('rails_default_logger')   require 'logger'   rails_default_logger = logger.new(stdout) end 

finally, answer question, seems if you're calling same group wanting 2 different ways order them, can save collection instance variable, , lazy load ordering depending on selected need.

except you'd want change method :

def get_users_in_a_group   @users_in_a_group ||= user.where("group_id = ?", current_group.id) end 

in that, if been called, pull have , re-order it.


Comments

Popular posts from this blog

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

php - render data via PDO::FETCH_FUNC vs loop -

The canvas has been tainted by cross-origin data in chrome only -