PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana pernyataan dan data cache PostgreSQL?

Umumnya, hanya konten tabel dan file indeks yang akan di-cache di ruang buffer bersama.

Paket kueri di-cache dalam beberapa keadaan. Cara terbaik untuk memastikan ini adalah dengan SIAPKAN kueri satu kali, lalu EKSEKUSI setiap kali.

Hasil kueri tidak di-cache secara otomatis. Jika Anda menjalankan ulang kueri yang sama -- meskipun identik satu huruf demi huruf, dan tidak ada pembaruan yang dilakukan pada DB -- itu akan tetap menjalankan seluruh rencana. Tentu saja, ini akan menggunakan data tabel/indeks apa pun yang sudah ada di cache buffer bersama; jadi tidak perlu membaca semua data dari disk lagi.

Pembaruan pada caching paket

Caching rencana umumnya dilakukan per sesi. Ini berarti hanya koneksi yang membuat paket yang dapat menggunakan versi cache. Koneksi lain harus membuat dan menggunakan versi cache mereka sendiri. Ini sebenarnya bukan masalah kinerja karena penghematan yang Anda dapatkan dari penggunaan kembali paket hampir selalu sangat kecil dibandingkan dengan biaya koneksi. (Kecuali pertanyaan Anda benar-benar rumit.)

Itu memang cache jika Anda menggunakan SIAPKAN:http://www.postgresql.org /docs/current/static/sql-prepare.html

Itu memang cache ketika kueri dalam fungsi PL/plSQL:http://www.postgresql.org/docs/current/static/plpgsql-implementation.html#PLPGSQL-PLAN-CACHING

Itu tidak cache kueri ad-hoc yang dimasukkan dalam psql.

Semoga orang lain dapat menguraikan kasus lain dari caching paket kueri.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Format nilai presisi ganda di Postgresql

  2. Postgres mengonversi tipe PATH ke ARRAY

  3. Grup zona waktu RoR Postgresql dengan tidak bekerja di Heroku

  4. Operator PostgreSQL IN dengan kinerja buruk subquery

  5. Cara membuat tabel berdasarkan kueri dan baris yang diambil dari pernyataan pilih