Tentang Query Random
Sebenarnya tema optimasi ini tidak terbatas pada python/django aja sih, bisa bahasa apa pun. Kadangkala dalam sebuah project kita butuh untuk menampilkan data secara random, entah itu random user, random post maupun random-random lainnya. Jika data masih sedikit (< 50k rows) mungkin tidak terlalu masalah, namun akan menjadi masalah kalau data sudah di atas 50.000 baris dengan model relasi yang cukup kompleks. Bagaimana cara yang efisien?
Saya sendiri membandingkan di antara 2 query berikut (contoh menggunakan query di django):
bandingkan dengan query berikut (lebih ringan):
Hasilnya jauh lebih efisien query kedua, kalau mau lebih efisien, object data_count bisa di hardcode.
Saya sendiri membandingkan di antara 2 query berikut (contoh menggunakan query di django):
import random
from myapp import DataModel
data = DataModel.objects.filter(published=True)
random_data = random.choice(data)
bandingkan dengan query berikut (lebih ringan):
import random
from myapp import DataModel
data = DataModel.objects.filter(published=True)
random_data = data.filter(id=random.randint(0, data.count()))
Hasilnya jauh lebih efisien query kedua, kalau mau lebih efisien, object data_count bisa di hardcode.
Query Menentukan Prestasi!
[…] Tentang Query Random […]
ReplyDelete