Rumah > pangkalan data > tutorial mysql > Bagaimanakah PostgreSQL Stored Computed Lajur Boleh Meningkatkan Prestasi untuk Pertanyaan Kompleks?

Bagaimanakah PostgreSQL Stored Computed Lajur Boleh Meningkatkan Prestasi untuk Pertanyaan Kompleks?

DDD
Lepaskan: 2025-01-11 18:56:47
asal
302 orang telah melayarinya

How Can PostgreSQL Stored Computed Columns Improve Performance for Complex Queries?

Lajur maya untuk menyimpan pertanyaan

PostgreSQL menyediakan banyak cara untuk menggabungkan pengiraan atau subkueri kompleks ke dalam skema jadual. Satu pendekatan adalah untuk mencipta pandangan, yang menyediakan perwakilan maya data yang boleh ditanya seperti jadual biasa. Walau bagaimanapun, paparan tidak disimpan dalam pangkalan data dan dikira semula untuk setiap pertanyaan, yang mungkin mengurangkan kecekapan untuk pertanyaan kompleks yang kerap digunakan.

Pendekatan lain ialah menggunakan lajur yang dikira tersimpan, yang membolehkan anda mentakrifkan nilai lajur berdasarkan ungkapan yang mengandungi lajur lain atau sumber data luaran. Lajur pengiraan yang disimpan disimpan secara fizikal dalam jadual dan nilainya dikira dan dikemas kini apabila data asas berubah.

Untuk menggunakan lajur yang dikira disimpan untuk menyimpan subkueri sebagai lajur pseudo, anda boleh mencipta fungsi yang membungkus subkueri dan merujuknya dalam takrifan lajur yang dikira. Berikut ialah contoh cara melakukan ini:

<code class="language-sql">CREATE FUNCTION col3(tbl_a)
RETURNS int8
LANGUAGE SQL STABLE
AS
$$
SELECT sum(colx)
FROM   tbl_b b
WHERE  b.a_id = .a_id
$$;

ALTER TABLE tbl_a ADD COLUMN col3 INT8 STORED AS col3(tbl_a);</code>
Salin selepas log masuk

Kaedah ini membolehkan anda menanyakan lajur terbitan seperti lajur biasa:

<code class="language-sql">SELECT a_id, col1, col2, col3
FROM   tbl_a;</code>
Salin selepas log masuk

Berbanding dengan paparan, kelebihan menggunakan lajur yang dikira disimpan ialah nilai lajur disimpan secara fizikal dan tidak perlu dikira semula untuk setiap pertanyaan, sekali gus meningkatkan prestasi pertanyaan kompleks yang kerap digunakan. Selain itu, lajur pengiraan yang disimpan disepadukan sepenuhnya ke dalam skema jadual, membolehkan ia digunakan untuk indeks, kekangan kunci asing dan operasi pangkalan data lain.

Atas ialah kandungan terperinci Bagaimanakah PostgreSQL Stored Computed Lajur Boleh Meningkatkan Prestasi untuk Pertanyaan Kompleks?. 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