sql >> Database >  >> RDS >> Mysql

Wanneer voert Rails de query uit en laadt het in het geheugen?

De where methode retourneert een ActiveRecord::Relation object, en op zichzelf geeft dit object geen databasequery uit. Het is waar u dit object gebruikt dat ertoe doet. join methode en laadt de databasequery lui door de bijbehorende tabel te gebruiken, maar laadt alleen de Home tabel in het geheugen als de bijbehorende User tafel is niet nodig. Daarna heb je merge , wat merge methode doet is een eenvoudige manier om een ​​benoemd bereik op een samengevoegd model te gebruiken. Iets als

class Home < ActiveRecord::Base
  has_many :users
end

class User < ActiveRecord::Base
  belongs_to :home

  scope :available, ->{ where(available: true) }
end



  1. Functie wordt sneller uitgevoerd zonder STRIKTE modifier?

  2. php mysql-server verdwenen

  3. java, statische variabelen op de juiste manier gebruiken om een ​​impasse te voorkomen - Synchroniseren

  4. MySQL &PHP:zoeken op meerdere trefwoorden