tl; dr
- Jika Anda tahu Anda tidak perlu menggunakan data
count
.
- Jika Anda tahu Anda akan menggunakan atau telah menggunakan data tersebut
length
.
- Jika Anda tidak tahu apa yang Anda lakukan, gunakan
size
...
menghitung
Putuskan untuk mengirim Select count(*)...
kueri ke DB. Cara untuk pergi jika Anda tidak membutuhkan data, tetapi hanya menghitung.
Contoh: jumlah pesan baru, elemen total saat hanya halaman yang akan ditampilkan, dll.
panjangnya
Memuat data yang diperlukan, yaitu permintaan seperti yang diperlukan, dan kemudian hanya menghitungnya. Cara untuk pergi jika Anda menggunakan data.
Contoh: Ringkasan tabel yang dimuat penuh, judul data yang ditampilkan, dll.
ukuran
Ia memeriksa apakah data dimuat (yaitu sudah ada di rel) jika demikian, maka hitung saja, kalau tidak panggilan akan dihitung. (ditambah jebakan, sudah disebutkan dalam entri lain).
def size
loaded? ? @records.length : count(:all)
end
Apa masalahnya?
Bahwa Anda mungkin memukul DB dua kali jika Anda tidak melakukannya dalam urutan yang benar (misalnya jika Anda merender jumlah elemen dalam tabel di atas tabel yang diberikan, akan ada 2 panggilan yang efektif dikirim ke DB).
size
menyesuaikan dengan situasi, maka untuk apalength
dancount
untuk apa?