Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cache data dalam PHP SESSION, atau kueri dari db setiap kali?

Jika data Anda digunakan di setiap halaman, dan sama untuk semua pengguna, saya tidak akan menyimpannya di $_SESSION (artinya memiliki salinan data yang berbeda untuk setiap pengguna), tetapi dengan mekanisme lain, seperti :

  • berkas
  • Dalam memori, dengan APC misalnya (jika hanya 1 server)
  • Dalam memori, dengan memcached, misalnya (jika Anda memiliki beberapa server)
  • Jika data Anda memerlukan perhitungan yang panjang atau beberapa kueri DB untuk diperoleh, menyimpannya di dalam database bisa menjadi kemungkinan lain (artinya hanya 1 kueri yang akan diambil kembali, dan lebih sedikit perhitungan)


Jika data Anda tidak sama untuk setiap pengguna (yang tampaknya menjadi kasus dalam situasi Anda, karena Anda menyimpan nama, tanggal lahir, ...) :

  • Saya akan memastikan bahwa saya hanya menyimpan cache yang diperlukan
  • Setelah Anda hanya memiliki sedikit data untuk di-cache, memasukkannya ke dalam sesi seharusnya tidak masalah
  • Jika Anda benar-benar memiliki banyak pengguna, Anda mungkin akan mengalami beberapa masalah skalabilitas lainnya, dan kemungkinan besar akan tetap menggunakan sesuatu seperti memcached; yang berarti Anda akan memiliki cara lain untuk menyimpan cache;-)

Sebagai catatan tambahan:jika Anda melakukan kueri yang sama berulang kali, server DB Anda harus menyimpannya di cache dengan sendirinya (untuk MySQL, itu akan masuk ke "tembolok kueri "); jadi, itu tidak akan seburuk yang Anda pikirkan, saya kira -- meskipun tidak terlalu dioptimalkan ^^



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. periksa apakah kolom ada sebelum ALTER TABLE -- mysql

  2. Cara Menginstal Database MariaDB di Debian 10

  3. Tabel MySQL dengan indeks komposit tetapi bukan kunci utama

  4. MySql:Hitung berapa kali kata-kata muncul di kolom

  5. Cara menggunakan GROUP_CONCAT dalam CONCAT di MySQL