Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menyoal Elemen Array dengan Cekap dalam Data JSON dalam PostgreSQL?

Bagaimana untuk Menyoal Elemen Array dengan Cekap dalam Data JSON dalam PostgreSQL?

DDD
Lepaskan: 2025-01-15 10:00:44
asal
924 orang telah melayarinya

How to Efficiently Query for Array Elements within JSON Data in PostgreSQL?

Mengambil Elemen Tatasusunan daripada Data JSON dalam PostgreSQL

Jenis data JSON PostgreSQL (diperkenalkan dalam versi 9.3) memudahkan penyimpanan dan pengurusan struktur data yang kompleks. Walau bagaimanapun, dengan cekap menanyakan elemen tertentu dalam tatasusunan JSON boleh menjadi rumit. Panduan ini menunjukkan strategi yang berkesan untuk mendapatkan semula elemen tatasusunan, terutamanya memfokuskan pada medan 'src' dalam tatasusunan objek.

Pendekatan Dioptimumkan untuk PostgreSQL 9.4 dan Kemudian (jsonb)

PostgreSQL 9.4 dan versi yang lebih baru menawarkan jsonb jenis data yang unggul, memberikan prestasi dan kefungsian yang dipertingkatkan. Kaedah yang paling cekap menggunakan operator @> dengan jsonb_array_elements():

<code class="language-sql">SELECT * FROM reports WHERE data->'objects' @> '[{"src":"foo.png"}]';</code>
Salin selepas log masuk

Pertanyaan ringkas ini secara langsung menyemak sama ada tatasusunan 'objek' mengandungi elemen yang sepadan dengan kriteria yang ditentukan.

Penyelesaian untuk PostgreSQL 9.3 dan Kemudian (json)

Untuk PostgreSQL 9.3 dan lebih baru (menggunakan jenis json), fungsi json_array_elements() digunakan dalam cantuman sisi:

<code class="language-sql">SELECT data::text, obj
FROM reports r, json_array_elements(r.data#>'{objects}') obj
WHERE obj->>'src' = 'foo.png';</code>
Salin selepas log masuk

Pendekatan ini membuka sarang tatasusunan, membenarkan pemeriksaan elemen individu.

Nota Penting:

  • Contoh ini menganggap satu tahap sarang dalam tatasusunan JSON. Tatasusunan bersarang lebih dalam akan memerlukan unnest panggilan tambahan atau cantuman sisi.
  • Untuk set data yang banyak, mencipta indeks pada ungkapan 'objek' adalah penting untuk mengoptimumkan prestasi pertanyaan. Ini mempercepatkan proses carian dengan ketara.

Atas ialah kandungan terperinci Bagaimana untuk Menyoal Elemen Array dengan Cekap dalam Data JSON dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan