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

Apakah pernyataan yang disiapkan di-cache di sisi server di beberapa halaman dimuat dengan PHP?

Ketika permintaan dilayani php "membersihkan" instance dan membebaskan sumber daya dan variabel lainnya. Ini dilakukan dalam beberapa langkah. Karena fastcgi membuat proses tetap hidup setelah permintaan, tidak semua langkah dijalankan dan tidak semua memori dibebaskan. ada misalnya EG(persistent_list) yang digunakan oleh mysql_pconnect() , pg_pconnect() , ... Daftar ini tidak dikosongkan di antara permintaan selama proses tetap hidup (bisa jadi, tergantung pada implementasi yang sebenarnya, tetapi itu akan bertentangan dengan tujuan EG(persistent_list)). Jika Anda menggunakan koneksi persisten, skrip Anda mungkin mendapatkan koneksi "digunakan kembali" selama permintaan sebelumnya.
Untuk (kembali) menggunakan pernyataan yang disiapkan secara langsung, Anda memerlukan pengenal untuk pernyataan itu (dan koneksi itu). Saat menggunakan (php-)postgresql, ini hanyalah string unik (dari segi koneksi) yang Anda berikan ke pg_execute() , jadi skrip Anda tidak memiliki masalah untuk mendapatkan akses ke pernyataan yang sebelumnya disiapkan oleh instance lain (menggunakan koneksi yang sama).
Menggunakan mysqli atau PDO-mysql anda memerlukan sumber daya/objek sebagai pengidentifikasi pernyataan. Itu semacam masalah karena baik mysqli maupun ekstensi pdo tampaknya tidak menawarkan cara untuk menyimpan sumber daya di EG(persist_list) di antara permintaan dan Anda juga tidak dapat membuatnya kembali. Kecuali php-fpm menawarkan "layanan" seperti itu, tampaknya mustahil untuk menggunakan kembali pernyataan yang disiapkan mysql secara langsung.
Yang dapat Anda harapkan hanyalah cache kueri sisi server . Dalam versi terbaru (lihat tautan) itu mungkin mengenali pernyataan saat menggunakan pernyataan yang disiapkan. Tetapi meskipun demikian itu tidak menggunakan kembali pernyataan yang sebenarnya disiapkan:

Jadi, jika saya tidak salah, saat ini Anda tidak dapat menggunakan kembali pernyataan mysql yang disiapkan pada permintaan sebelumnya di php.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - Baris ke Kolom

  2. MySql:atur variabel dengan daftar

  3. String ke joda LocalDate dalam format dd-MMM-yy

  4. Apa bidang terbaik untuk menyimpan ulang tahun?

  5. Bagaimana cara mengunci database mysql secara eksklusif?