Untuk menjawab pertanyaan Anda secara singkat, db_query adalah yang tercepat! Berikut adalah beberapa alasan, fakta dan angka yang dihimpun dari berbagai pertanyaan, sumber:
Googling sederhana dari pertanyaan ini, dapatkan hasil berikut:
For simple queries, db_query() is 22% faster than db_select()
For simple queries, db_query() is 124% faster than EFQ
For queries with two joins, db_query() is 29% faster than db_select()
dan ini
db_query():
Total Incl. Wall Time (microsec): 796 microsecs
Total Incl. CPU (microsecs): 0 microsecs
Total Incl. MemUse (bytes): 123,352 bytes
Total Incl. PeakMemUse (bytes): 124,248 bytes
Number of Function Calls: 38
db_select()
Total Incl. Wall Time (microsec): 1,118 microsecs
Total Incl. CPU (microsecs): 0 microsecs
Total Incl. MemUse (bytes): 425,216 bytes
Total Incl. PeakMemUse (bytes): 436,392 bytes
Number of Function Calls: 88
Jika Anda perhatikan di atas, db_select membuat lebih banyak panggilan fungsi dan menggunakan lebih banyak memori daripada db_query.
- Lihat di sini untuk alasan mengapa menggunakan db_select
- Lihat di sini untuk alasan mengapa menggunakan EntityFieldQuery di atas db_select
- Lihat di sini untuk perbandingan kinerja db_query dan db_select
Saya kira pilihannya harus semata-mata didasarkan pada kebutuhan Anda. EntityFieldQuery mungkin lebih lambat tetapi, menawarkan banyak keuntungan seperti sintaksis sederhana, penyimpanan bidang bersifat pluggable, kopling longgar dan banyak lagi.