Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Cache paket kueri di Amazon Neptunus

Mode fokus
Cache paket kueri di Amazon Neptunus - Amazon Neptune

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Ketika kueri dikirimkan ke Neptunus, string kueri diurai, dioptimalkan, dan diubah menjadi rencana kueri, yang kemudian dieksekusi oleh mesin. Aplikasi sering didukung oleh pola kueri umum yang dipakai dengan nilai yang berbeda. Cache rencana kueri dapat mengurangi latensi keseluruhan dengan menyimpan paket kueri dan dengan demikian menghindari penguraian dan pengoptimalan untuk pola berulang tersebut.

Query Plan Cache dapat digunakan untuk OpenCypherkueri — baik kueri non-parameter maupun parameter. Ini diaktifkan untuk READ, dan untuk HTTP dan Bolt. Ini tidak didukung untuk kueri mutasi OC. Ini tidak didukung untuk kueri Gremlin atau SPARQL.

Cara memaksa mengaktifkan atau menonaktifkan cache rencana kueri

Cache paket kueri diaktifkan secara default untuk kueri berparameter latensi rendah. Rencana untuk kueri berparameter hanya di-cache ketika latensi lebih rendah dari ambang batas 100 ms. Perilaku ini dapat diganti berdasarkan per-kueri (diparameterisasi atau tidak) oleh Petunjuk Kueri tingkat kueri. QUERY:PLANCACHE Itu perlu digunakan dengan USING klausa. Petunjuk kueri menerima enabled atau disabled sebagai nilai.

# Forcing plan to be cached or reused % curl -k https://<endpoint>:<port>/opencypher \ -d "query=Using QUERY:PLANCACHE \"enabled\" MATCH(n) RETURN n LIMIT 1" % curl -k https://<endpoint>:<port>/opencypher \ -d "query=Using QUERY:PLANCACHE \"enabled\" RETURN \$arg" \ -d "parameters={\"arg\": 123}" # Forcing plan to be neither cached nor reused % curl -k https://<endpoint>:<port>/opencypher \ -d "query=Using QUERY:PLANCACHE \"disabled\" MATCH(n) RETURN n LIMIT 1"

Cara menentukan apakah suatu rencana di-cache atau tidak

Untuk HTTP READ, jika kueri dikirimkan dan paket di-cache, explain akan menampilkan detail yang relevan dengan cache rencana kueri.

% curl -k https://<endpoint>:<port>/opencypher \ -d "query=Using QUERY:PLANCACHE \"enabled\" MATCH(n) RETURN n LIMIT 1" \ -d "explain=[static|details]" Query: <QUERY STRING> Plan cached by request: <REQUEST ID OF FIRST TIME EXECUTION> Plan cached at: <TIMESTAMP OF FIRST TIME EXECUTION> Parameters: <PARAMETERS, IF QUERY IS PARAMETERIZED QUERY> Plan cache hits: <NUMBER OF CACHE HITS FOR CACHED PLAN> First query evaluation time: <LATENCY OF FIRST TIME EXECUTION> The query has been executed based on a cached query plan. Detailed explain with operator runtime statistics can be obtained by running the query with plan cache disabled (using HTTP parameter planCache=disabled).

Saat menggunakan Bolt, fitur jelaskan tidak didukung.

Penggusuran

Rencana kueri diusir oleh cache time to live (TTL) atau ketika jumlah maksimum paket kueri cache telah tercapai. Saat paket kueri terpukul, TTL disegarkan. Defaultnya adalah:

  • 1000 - Jumlah maksimum paket yang dapat di-cache per instance.

  • TTL - 300.000 milidetik atau 5 menit. Cache hit memulai ulang TTL, dan mengatur ulang kembali ke 5 menit.

Kondisi yang menyebabkan rencana tidak di-cache

Cache paket kueri tidak akan digunakan dalam kondisi berikut:

  1. Saat kueri dikirimkan menggunakan petunjuk QUERY:PLANCACHE "disabled" kueri. Anda dapat menjalankan kembali kueri dan menghapus QUERY:PLANCACHE "disabled" untuk mengaktifkan cache rencana kueri.

  2. Jika kueri yang dikirimkan bukan kueri berparameter dan tidak berisi petunjuk. QUERY:PLANCACHE "enabled"

  3. Jika waktu evaluasi kueri lebih besar dari ambang latensi, kueri tidak di-cache dan dianggap sebagai kueri yang berjalan lama yang tidak akan mendapat manfaat dari cache paket kueri.

  4. Jika kueri berisi pola yang tidak mengembalikan hasil apa pun.

    • yaitu MATCH (n:nonexistentLabel) return n ketika ada nol node dengan label yang ditentukan.

    • yaitu MATCH (n {name: $param}) return n dengan parameters={"param": "abcde"} ketika ada nol node yang mengandungname=abcde.

  5. Jika parameter kueri adalah tipe komposit, seperti a list atau amap.

    curl -k https://<endpoint>:<port>/opencypher \ -d "query=Using QUERY:PLANCACHE \"enabled\" RETURN \$arg" \ -d "parameters={\"arg\": [1, 2, 3]}" curl -k https://<endpoint>:<port>/opencypher \ -d "query=Using QUERY:PLANCACHE \"enabled\" RETURN \$arg" \ -d "parameters={\"arg\": {\"a\": 1}}"
  6. Jika parameter query adalah string yang belum menjadi bagian dari beban data atau operasi penyisipan data. Misalnya, jika CREATE (n {name: "X"}) dijalankan untuk menyisipkan"X", RETURN "X" maka di-cache, sementara tidak RETURN "Y" akan di-cache, karena "Y" belum dimasukkan dan tidak ada dalam database.

Topik berikutnya:

Gremlin

Topik sebelumnya:

Antrean kueri
PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.