Cara terbaik untuk mengetahuinya adalah dengan menguji, tentu saja. Jawabannya mungkin berbeda tergantung pada ukuran kumpulan data, jumlah meta-key yang berbeda, distribusinya (apakah semua entitas memiliki nilai untuk semua meta-key? atau hanya untuk beberapa di antaranya?), pengaturan database Anda server dan mungkin banyak faktor lainnya.
Jika saya menebak, saya akan mengatakan bahwa biaya JOIN
operasi di opsi 2 akan lebih kecil daripada biaya GROUP BY
dan fungsi agregat yang diperlukan dalam opsi 1 dan 3.
Jadi, saya berharap menemukan Opsi 2 lebih cepat dari 1 dan 3.
Untuk mengukur Opsi 4, Anda harus mempertimbangkan lebih banyak faktor karena aplikasi mungkin berada di server lain sehingga beban dari dua server (db dan aplikasi) dan jumlah klien yang akan meminta hasil ini harus diperhitungkan .
Sidenote:Anda memerlukan GROUP BY e.ID
di opsi 1 dan 3.