Cara Menggunakan Fitur Query Cache di Codeigniter

Pada kesempatan ini saya akan membagikan suatu cara untuk mengoptimasi sebuah aplikasi atau website dengan Query Cache di Codeigniter. Halaman-halaman website yang sering diakses oleh pengguna atau visitor tentunya akan membutuhkan loading yang cepat yang akan membuat pengguna nyaman dalam menggunakan aplikasi/website kita.

Apa itu Cache?

Cache adalah suatu proses dimana sistem menyimpan informasi sementara sehingga sistem tidak perlu meload data yang memerlukan pemrosesan yang berat, dengan adanya file sementara ini sistem hanya perlu membaca informasi yang disimpan oleh sistem.

Bagaimana Cache Bekerja?

Sistem Caching Query CodeIgniter terjadi secara dinamis saat halaman Anda ditampilkan. Ketika cache diaktifkan, pertama kalinya halaman web dimuat, objek hasil kueri akan diserialisasikan dan disimpan dalam file teks di server Anda. dan ketika halaman dimuat file cache akan digunakan alih-alih mengakses database Anda. Penggunaan database Anda dapat secara efektif dikurangi menjadi nol untuk halaman apa pun yang telah di-cache.

Hanya Query read-type (SELECT) yang dapat di-cache, karena ini adalah satu-satunya tipe query yang menghasilkan hasil. Query tipe penulisan (INSERT, UPDATE, dll.), karena mereka tidak menghasilkan hasil, tidak akan di-cache oleh sistem.

File Cache tidak akan kadaluarsa. Setiap kueri yang telah di-cache akan tetap di-cache sampai Anda menghapusnya. Sistem cache memungkinkan Anda menghapus cache yang terkait dengan halaman individual, atau Anda dapat menghapus seluruh koleksi file cache.

Akankah Metode Caching Meningkatkan Kinerja Situs Anda?

Banyak sekali faktor ketika kita ingin merasakan efek dari caching ini, ketika server kita hanya mengolah data beberapa pengguna dalam satu waktu mungkin tidak akan terasa efeknya, berbeda ketika server kita menerima pemrosesan data ratusan bahkan ribuan pengguna dalam waktu yang bersamaan. semakin banyak query yang tersimpan dalam betuk file cache, maka semakin besar pula kapasitas hardisk yang terpakai di server.

Bagaimana File Cache Disimpan?

CodeIgniter menempatkan hasil setiap Query ke dalam file cache-nya sendiri. Kumpulan file cache selanjutnya diatur ke dalam sub-folder yang sesuai dengan Controller & Function Anda. Tepatnya, sub-folder dinamai identik dengan dua segmen pertama URI Anda (nama kelas Controller dan nama fungsi).

Misalnya, Anda memiliki Controller yang disebut blog dengan fungsi yang disebut comments yang berisi tiga kueri. Sistem caching akan membuat folder cache yang disebut blog+comments, di mana sistem caching ini akan menulis tiga file cache.

jika Anda menggunakan kueri dinamis yang berubah berdasarkan informasi di URI Anda (saat menggunakan pagination, misalnya), setiap contoh kueri akan menghasilkan file cache sendiri.

Mengatur File Cache Anda

Karena file cache tidak kedaluwarsa, Anda harus membuat rutinitas penghapusan ke dalam aplikasi Anda. Misalnya, Anda memiliki blog yang memungkinkan pengguna berkomentar. Setiap kali komentar baru dikirimkan, Anda harus menghapus file cache yang terkait dengan function dan controller yang menyajikan komentar Anda. Anda akan menemukan dua fungsi penghapusan yang dijelaskan di bawah ini yang membantu Anda menghapus data.

Tidak Semua Fungsi Database Bekerja dengan Caching

Terakhir, kita perlu menunjukkan bahwa objek hasil yang di-cache adalah versi yang disederhanakan dari objek hasil keseluruhan. Untuk alasan itu, beberapa fungsi hasil kueri tidak tersedia untuk digunakan.

Fungsi database dibawah ini tidak akan bekerja dengan cache:

  • num_fields()
  • field_names()
  • field_data()
  • free_result()

Referensi Fungsi

$this->db->cache_on() / $this->db->cache_off()

Mengaktifkan/menonaktifkan caching secara manual. Ini bisa berguna jika Anda ingin menjaga agar kueri tertentu tidak di-cache. contoh:


// Turn caching on
$this->db->cache_on();
$query = $this->db->query("SELECT * FROM mytable");

// Turn caching off for this one query
$this->db->cache_off();
$query = $this->db->query("SELECT * FROM members WHERE member_id = '$current_user'");

// Turn caching back on
$this->db->cache_on();
$query = $this->db->query("SELECT * FROM another_table");

$this->db->cache_delete()

Menghapus file cache yang terkait dengan halaman tertentu. Ini berguna jika Anda perlu menghapus cache setelah Memperbarui database Anda.

Sistem cache menyimpan file cache Anda ke folder yang sesuai dengan URI halaman yang Anda lihat. Misalnya, jika Anda melihat halaman di example.com/index.php/blog/comments, sistem cache akan menempatkan semua file cache yang terkait dengannya di folder yang disebut blog+comments. Untuk menghapus file cache tertentu gunakan:


$this->db->cache_delete('blog', 'comments');

$this->db->cache_delete_all()

Menghapus semua file cache yang terdapat di server.


$this->db->cache_delete_all();

Sekian dulu untuk penjelasan tentang cache query ini, terimakasih telah meluangkan waktunya untuk membaca dan semoga bermanfaat. apabila masih terdapat kesalahan penulisan atau pemilihan kata yang kurang tepat mohon dimaafkan.

 

Sumber : Codeigniter.com