sql >> Database teknologi >  >> RDS >> PostgreSQL

ActiveRecord-forespørgsel meget langsommere end direkte SQL?

Et par ting springer ud.

For det første, hvis denne kode bliver kaldt 2000 gange og tager 250 ms ekstra at køre, er det ~0,125 ms pr. kald for at konvertere Arel til SQL, hvilket ikke er urealistisk.

For det andet er jeg ikke sikker på det indre af Range i Ruby, men lower..upper laver muligvis beregninger såsom størrelsen af ​​rækkevidden og andre ting, som vil være et stort præstationshit.

Ser du det samme præstationshit med følgende?

sum = Table.
      where(:id => id).
      where(:created_at => "BETWEEN ? and ?", lower, upper).
      sum(:my_column)



  1. Liste over SQL Server Comparison Operators

  2. MySQL-rangering i tilfælde af bånd

  3. ResultSetMetaData getScale returnerer 0

  4. Hvordan finder man tidligere post [n-per-group max(timestamp) <timestamp]?