Misura le prestazioni di ActiveRecord nel metodo 'limit' [chiuso]

-1

Come posso misurare le prestazioni di ActiveRecord?

La mia query ha where e una clausola order by , e in più voglio la riga in alto:

User.where(…).order(id: :asc).limit(1)

Sapendo che order by forza l'analisi dell'intera tabella, quanto può essere un guadagno in termini di prestazioni utilizzando .limit(1) anziché utilizzare [1] ?

    
posta bjacquet 23.02.2018 - 18:57
fonte

1 risposta

0

Conversione della richiesta ORM in un'istruzione SQL, sebbene non sia uno strumento per misurare le prestazioni può essere utilizzata per ispezionare la query SQL. Questo solo per la maggior parte dei casi riguarda solo ciò che si vuole. (Per me almeno negli ultimi dieci giorni.)

> User.where(id: [10..50]).order(id: :asc).limit(1).to_sql
=> "SELECT  \"users\".* FROM \"users\"  WHERE ((\"users\".\"id\" BETWEEN 10 AND 50 OR 1=0))  ORDER BY \"users\".\"id\" ASC LIMIT 1"

Questo tipo di output è un ottimo punto di partenza per migliorare la tua richiesta ORM.

    
risposta data 06.03.2018 - 09:39
fonte

Leggi altre domande sui tag