PostgreSQL ရဟိ အညလဟန်သမျာသ၏ အင်္ဂါရပ်အာသလုံသကို အသုံသပဌုခဌင်သ။

PostgreSQL ရဟိ အညလဟန်သမျာသ၏ အင်္ဂါရပ်အာသလုံသကို အသုံသပဌုခဌင်သ။
Postgres ကမ္ဘာတလင်၊ ဒေတာဘေ့စ်သိုလဟောင်မဟု၏ ထိရောက်သောလမ်သကဌောင်သပဌမဟုအတလက် အညလဟန်သကိန်သမျာသသည် မရဟိမဖဌစ်လိုအပ်သည် ("heap" ဟုခေါ်သည်)။ Postgres သည် ၎င်သအတလက် အစုလိုက်အပဌုံလိုက်ပဌုလုပ်ခဌင်သကို မပံ့ပိုသပါ၊ နဟင့် MVCC ဗိသုကာသည် သင့်အာသ တူညီသော tuple ဗာသရဟင်သမျာသစလာဖဌင့် အဆုံသသတ်စေသည်။ ထို့ကဌောင့်၊ အသုံသချပရိုဂရမ်မျာသကို ပံ့ပိုသရန်အတလက် ထိရောက်သော အညလဟန်သကိန်သမျာသကို ဖန်တီသထိန်သသိမ်သနိုင်ရန် အလလန်အရေသကဌီသပါသည်။

ကသည်မဟာ အညလဟန်သကိန်သမျာသအသုံသပဌုမဟုကို အကောင်သဆုံသဖဌစ်အောင် မဌဟင့်တင်ရန် အကဌံပဌုချက်အချို့ဖဌစ်သည်။

မဟတ်ချက်- အောက်တလင်ဖော်ပဌထာသသော မေသမဌန်သချက်မျာသသည် မလမ်သမံထာသသော အရာတစ်ခုတလင် အလုပ်လုပ်ပါသည်။ pagila နမူနာဒေတာဘေ့စ်.

Covering Index မျာသကို အသုံသပဌုခဌင်သ။

မလဟုပ်မရဟာသအသုံသပဌုသူမျာသအတလက် အီသမေသလ်လိပ်စာမျာသကို ထုတ်ယူရန် တောင်သဆိုချက်ကို ကဌည့်ကဌပါစို့။ စာသပလဲ customer ကော်လံတစ်ခုရဟိသည်။ active၊ မေသမဌန်သချက်သည် ရိုသရဟင်သသည်-

pagila=# EXPLAIN SELECT email FROM customer WHERE active=0;
                        QUERY PLAN
-----------------------------------------------------------
 Seq Scan on customer  (cost=0.00..16.49 rows=15 width=32)
   Filter: (active = 0)
(2 rows)

မေသခလန်သသည် ဇယာသအပဌည့်အစုံကို စကင်ဖတ်စစ်ဆေသခဌင်သ အစီအစဉ်ကို ခေါ်ဆိုသည်။ customer. ကော်လံတစ်ခုပေါ်တလင် အညလဟန်သတစ်ခု ဖန်တီသကဌပါစို့ active:

pagila=# CREATE INDEX idx_cust1 ON customer(active);
CREATE INDEX
pagila=# EXPLAIN SELECT email FROM customer WHERE active=0;
                                 QUERY PLAN
-----------------------------------------------------------------------------
 Index Scan using idx_cust1 on customer  (cost=0.28..12.29 rows=15 width=32)
   Index Cond: (active = 0)
(2 rows)

၎င်သသည် ကူညီပေသသည်၊ နောက်ဆက်တလဲစကင်န်သည် "index scan” . ဆိုလိုသည်မဟာ Postgres သည် အညလဟန်သကို စကင်န်ဖတ်မည်၊idx_cust1"၊ ထို့နောက် အခဌာသကော်လံမျာသ၏ တန်ဖိုသမျာသကို ဖတ်ရန် ဇယာသအမဟိုက်ပုံအာသ ဆက်လက်ရဟာဖလေပါ (ကကိစ္စတလင်၊ ကော်လံ၊ email၎) မေသမဌန်သမဟု လိုအပ်ပါသည်။

အကျုံသဝင်သော အညလဟန်သမျာသကို PostgreSQL 11 တလင် မိတ်ဆက်ထာသသည်။ ၎င်သတို့သည် သင့်အာသ အညလဟန်သကိန်သတလင် တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော နောက်ထပ်ကော်လံမျာသပါ၀င်ခလင့်ပဌုသည် - ၎င်သတို့၏တန်ဖိုသမျာသကို အညလဟန်သဒေတာစတိုသတလင် သိမ်သဆည်သထာသသည်။

ကျလန်ုပ်တို့သည် ကအင်္ဂါရပ်ကို အခလင့်ကောင်သယူကာ အညလဟန်သအတလင်သ အီသမေသလ်တန်ဖိုသကို ပေါင်သထည့်ပါက၊ ထို့နောက် Postgres သည် တန်ဖိုသအတလက် ဇယာသကလက်ကို ရဟာဖလေရန် မလိုအပ်ပါ။ email. ဒါက အလုပ်ဖဌစ်မဖဌစ် ကဌည့်ရအောင်။

pagila=# CREATE INDEX idx_cust2 ON customer(active) INCLUDE (email);
CREATE INDEX
pagila=# EXPLAIN SELECT email FROM customer WHERE active=0;
                                    QUERY PLAN
----------------------------------------------------------------------------------
 Index Only Scan using idx_cust2 on customer  (cost=0.28..12.29 rows=15 width=32)
   Index Cond: (active = 0)
(2 rows)

«Index Only Scan' ယခုမေသမဌန်သချက်သည် ဇယာသပုံအာသဖတ်ရန် disk I/O အာသလုံသကို ရဟောင်ရဟာသရန် ကူညီပေသသည့် အညလဟန်သတစ်ခုသာ လိုအပ်ကဌောင်သ ကျလန်ုပ်တို့အာသ ပဌောပဌသည်။

အကျုံသဝင်သော အညလဟန်သကိန်သမျာသသည် B-trees အတလက်သာ လောလောဆယ် ရနိုင်ပါသည်။ သို့သော်လည်သ ကကိစ္စတလင်၊ ပဌုပဌင်ထိန်သသိမ်သမဟု အာသထုတ်မဟုသည် ပိုမိုမဌင့်မာသလာမည်ဖဌစ်သည်။

Partial Index မျာသကို အသုံသပဌုခဌင်သ။

တစ်စိတ်တစ်ပိုင်သ အညလဟန်သကိန်သမျာသသည် ဇယာသတစ်ခုရဟိ အတန်သမျာသ၏ အစုခလဲတစ်ခုသာဖဌစ်သည်။ ၎င်သသည် အညလဟန်သကိန်သမျာသ၏ အရလယ်အစာသကို သက်သာစေပဌီသ စကင်ဖတ်မဟုမျာသကို ပိုမိုမဌန်ဆန်စေသည်။

ကယ်လီဖိုသနီသယာသရဟိ ကျလန်ုပ်တို့၏ဖောက်သည်မျာသ၏ အီသမေသလ်လိပ်စာမျာသစာရင်သကို ရယူလိုသည်ဟု ဆိုကဌပါစို့။ တောင်သဆိုချက်သည် ကကဲ့သို့ဖဌစ်လိမ့်မည်-

SELECT c.email FROM customer c
JOIN address a ON c.address_id = a.address_id
WHERE a.district = 'California';
which has a query plan that involves scanning both the tables that are joined:
pagila=# EXPLAIN SELECT c.email FROM customer c
pagila-# JOIN address a ON c.address_id = a.address_id
pagila-# WHERE a.district = 'California';
                              QUERY PLAN
----------------------------------------------------------------------
 Hash Join  (cost=15.65..32.22 rows=9 width=32)
   Hash Cond: (c.address_id = a.address_id)
   ->  Seq Scan on customer c  (cost=0.00..14.99 rows=599 width=34)
   ->  Hash  (cost=15.54..15.54 rows=9 width=4)
         ->  Seq Scan on address a  (cost=0.00..15.54 rows=9 width=4)
               Filter: (district = 'California'::text)
(6 rows)

သာမာန်အညလဟန်သကိန်သမျာသသည် ကျလန်ုပ်တို့အာသ မည်သည့်အရာမျာသ ပေသမည်နည်သ။

pagila=# CREATE INDEX idx_address1 ON address(district);
CREATE INDEX
pagila=# EXPLAIN SELECT c.email FROM customer c
pagila-# JOIN address a ON c.address_id = a.address_id
pagila-# WHERE a.district = 'California';
                                      QUERY PLAN
---------------------------------------------------------------------------------------
 Hash Join  (cost=12.98..29.55 rows=9 width=32)
   Hash Cond: (c.address_id = a.address_id)
   ->  Seq Scan on customer c  (cost=0.00..14.99 rows=599 width=34)
   ->  Hash  (cost=12.87..12.87 rows=9 width=4)
         ->  Bitmap Heap Scan on address a  (cost=4.34..12.87 rows=9 width=4)
               Recheck Cond: (district = 'California'::text)
               ->  Bitmap Index Scan on idx_address1  (cost=0.00..4.34 rows=9 width=0)
                     Index Cond: (district = 'California'::text)
(8 rows)

စကင် address အညလဟန်သစကင်န်ဖဌင့် အစာသထိုသထာသသည်။ idx_address1ထို့နောက် အမဟိုက်ပုံကို စကင်န်ဖတ်သည်။ address.

၎င်သသည် မကဌာခဏမေသမဌန်သမဟုဖဌစ်ပဌီသ အကောင်သဆုံသဖဌစ်အောင်ပဌုလုပ်ရန် လိုအပ်သောကဌောင့်၊ ခရိုင်အတလင်သရဟိလိပ်စာမျာသပါရဟိသည့် အတန်သမျာသကိုသာ အညလဟန်သကိန်သပေသသည့် တစ်စိတ်တစ်ပိုင်သအညလဟန်သကို ကျလန်ုပ်တို့အသုံသပဌုနိုင်ပါသည်။ ‘California’:

pagila=# CREATE INDEX idx_address2 ON address(address_id) WHERE district='California';
CREATE INDEX
pagila=# EXPLAIN SELECT c.email FROM customer c
pagila-# JOIN address a ON c.address_id = a.address_id
pagila-# WHERE a.district = 'California';
                                           QUERY PLAN
------------------------------------------------------------------------------------------------
 Hash Join  (cost=12.38..28.96 rows=9 width=32)
   Hash Cond: (c.address_id = a.address_id)
   ->  Seq Scan on customer c  (cost=0.00..14.99 rows=599 width=34)
   ->  Hash  (cost=12.27..12.27 rows=9 width=4)
         ->  Index Only Scan using idx_address2 on address a  (cost=0.14..12.27 rows=9 width=4)
(5 rows)

ခုတော့ မေသခလန်သက ဖတ်ရုံပဲ။ idx_address2 စာသပလဲကိုမထိဘူသ။ address.

Multi-Value Index မျာသကို အသုံသပဌုခဌင်သ။

အညလဟန်သပဌုရမည့် ကော်လံအချို့တလင် စကလာဒေတာအမျိုသအစာသ မပါဝင်ပါ။ ကော်လံ အမျိုသအစာသမျာသ jsonb, arrays О tsvector ပေါင်သစပ် သို့မဟုတ် တန်ဖိုသမျာသစလာ ပါဝင်သည်။ ထိုသို့သောကော်လံမျာသကို အညလဟန်သရေသရန် လိုအပ်ပါက၊ ထိုကော်လံမျာသတလင် တစ်ညသချင်သတန်ဖိုသမျာသအာသလုံသကို ရဟာဖလေရတတ်သည်။

မအောင်မဌင်သော အချိန်မျာသကို ဖဌတ်တောက်ထာသသော ရုပ်ရဟင်အာသလုံသ၏ ခေါင်သစဉ်မျာသကို ရဟာကဌည့်ကဌပါစို့။ စာသပလဲ film စာသာသကော်လံဟုခေါ်သည်။ special_features. ရုပ်ရဟင်တလင် က "အထူသပိုင်ဆိုင်မဟု" ရဟိပါက၊ ကော်လံတလင် စာသာသအခင်သအကျင်သတစ်ခုအနေဖဌင့် အစိတ်အပိုင်သပါရဟိသည်။ Behind The Scenes. ထိုကဲ့သို့သောဇာတ်ကာသမျာသအာသလုံသကို ရဟာဖလေရန် "Behind The Scenes" နဟင့် အတန်သအာသလုံသကို ရလေသချယ်ရန် လိုအပ်ပါသည်။ မည်သည့် array တန်ဖိုသမျာသ special_features:

SELECT title FROM film WHERE special_features @> '{"Behind The Scenes"}';

သိုက်အော် @> ညာဘက်ခဌမ်သသည် ဘယ်ဘက်ခဌမ်သ၏ အခလဲတစ်ခု ဟုတ်မဟုတ် စစ်ဆေသပါ။

အစီအစဉ်တောင်သဆိုရန်-

pagila=# EXPLAIN SELECT title FROM film
pagila-# WHERE special_features @> '{"Behind The Scenes"}';
                           QUERY PLAN
-----------------------------------------------------------------
 Seq Scan on film  (cost=0.00..67.50 rows=5 width=15)
   Filter: (special_features @> '{"Behind The Scenes"}'::text[])
(2 rows)

ကုန်ကျစရိတ် 67 ဖဌင့် အပဌည့်အစုံ စကင်ဖတ်ရန် တောင်သဆိုထာသသည်။

ပုံမဟန် B-tree အညလဟန်သကိန်သက ကျလန်ုပ်တို့ကို ကူညီပေသသလာသ ကဌည့်ရအောင်။

pagila=# CREATE INDEX idx_film1 ON film(special_features);
CREATE INDEX
pagila=# EXPLAIN SELECT title FROM film
pagila-# WHERE special_features @> '{"Behind The Scenes"}';
                           QUERY PLAN
-----------------------------------------------------------------
 Seq Scan on film  (cost=0.00..67.50 rows=5 width=15)
   Filter: (special_features @> '{"Behind The Scenes"}'::text[])
(2 rows)

အညလဟန်သတောင် ထည့်မစဉ်သစာသဘူသ။ B-tree အညလဟန်သကိန်သသည် အညလဟန်သကိန်သတန်ဖိုသမျာသတလင် တစ်ခုချင်သဒဌပ်စင်မျာသ ရဟိနေကဌောင်သကို မသိပါ။

ကျလန်ုပ်တို့သည် GIN အညလဟန်သကိန်သတစ်ခုလိုသည်။

pagila=# CREATE INDEX idx_film2 ON film USING GIN(special_features);
CREATE INDEX
pagila=# EXPLAIN SELECT title FROM film
pagila-# WHERE special_features @> '{"Behind The Scenes"}';
                                QUERY PLAN
---------------------------------------------------------------------------
 Bitmap Heap Scan on film  (cost=8.04..23.58 rows=5 width=15)
   Recheck Cond: (special_features @> '{"Behind The Scenes"}'::text[])
   ->  Bitmap Index Scan on idx_film2  (cost=0.00..8.04 rows=5 width=0)
         Index Cond: (special_features @> '{"Behind The Scenes"}'::text[])
(4 rows)

GIN အညလဟန်သကိန်သသည် အညလဟန်သကိန်သပေါင်သစပ်ထာသသောတန်ဖိုသမျာသနဟင့် မဌေပုံတစ်ခုချင်သတန်ဖိုသမျာသကို ပံ့ပိုသပေသသည်၊ ရလဒ်အနေဖဌင့် query plan ကုန်ကျစရိတ်သည် ထက်ဝက်ကျော်သည်။

ပလာသနေသော အညလဟန်သမျာသကို ဖယ်ရဟာသခဌင်သ။

အညလဟန်သမျာသသည် အချိန်ကဌာလာသည်နဟင့်အမျဟ စုပုံလာကာ တစ်ခါတစ်ရံတလင် အညလဟန်သအသစ်တစ်ခုတလင် ယခင်တစ်ခုနဟင့်တစ်ခုကဲ့သို့ တူညီသောအဓိပ္ပါယ်ဖလင့်ဆိုမဟုမျာသပါရဟိသည်။ အညလဟန်သမျာသ၏ လူသာသဖတ်နိုင်သော SQL အဓိပ္ပါယ်ဖလင့်ဆိုချက်မျာသကို ရယူရန် ကတ်တလောက်မဌင်ကလင်သကို သင်အသုံသပဌုနိုင်သည်။ pg_indexes. အလာသတူ အဓိပ္ပါယ်ဖလင့်ဆိုချက်မျာသကိုလည်သ အလလယ်တကူ ရဟာဖလေနိုင်သည်-

 SELECT array_agg(indexname) AS indexes, replace(indexdef, indexname, '') AS defn
    FROM pg_indexes
GROUP BY defn
  HAVING count(*) > 1;
And here’s the result when run on the stock pagila database:
pagila=#   SELECT array_agg(indexname) AS indexes, replace(indexdef, indexname, '') AS defn
pagila-#     FROM pg_indexes
pagila-# GROUP BY defn
pagila-#   HAVING count(*) > 1;
                                indexes                                 |                                defn
------------------------------------------------------------------------+------------------------------------------------------------------
 {payment_p2017_01_customer_id_idx,idx_fk_payment_p2017_01_customer_id} | CREATE INDEX  ON public.payment_p2017_01 USING btree (customer_id
 {payment_p2017_02_customer_id_idx,idx_fk_payment_p2017_02_customer_id} | CREATE INDEX  ON public.payment_p2017_02 USING btree (customer_id
 {payment_p2017_03_customer_id_idx,idx_fk_payment_p2017_03_customer_id} | CREATE INDEX  ON public.payment_p2017_03 USING btree (customer_id
 {idx_fk_payment_p2017_04_customer_id,payment_p2017_04_customer_id_idx} | CREATE INDEX  ON public.payment_p2017_04 USING btree (customer_id
 {payment_p2017_05_customer_id_idx,idx_fk_payment_p2017_05_customer_id} | CREATE INDEX  ON public.payment_p2017_05 USING btree (customer_id
 {idx_fk_payment_p2017_06_customer_id,payment_p2017_06_customer_id_idx} | CREATE INDEX  ON public.payment_p2017_06 USING btree (customer_id
(6 rows)

Superset အညလဟန်သမျာသ

သင်သည် အညလဟန်သမျာသစလာဖဌင့် အဆုံသသတ်နိုင်ပဌီသ၊ တစ်ခုသည် အခဌာသအညလဟန်သကိန်သမျာသကို အညလဟန်သပေသသည့် ကော်လံမျာသ၏ စူပါဆက်တစ်ခုကို ညလဟန်သပေသသည်။ ၎င်သသည် နဟစ်လိုဖလယ်ဖဌစ်နိုင်သည် သို့မဟုတ် မဖဌစ်ကောင်သဖဌစ်နိုင်သည်—စူပါဆက်တ်သည် အညလဟန်သ-သီသသန့်စကင်န်ဖတ်ခဌင်သမျာသကို ဖဌစ်ပေါ်စေနိုင်သည်၊ ၎င်သသည် ကောင်သမလန်သော်လည်သ နေရာအလလန်မျာသစလာယူနိုင်သည်၊ သို့မဟုတ် ပိုကောင်သအောင်ပဌုလုပ်ရန် ရည်ရလယ်ထာသသည့် စူပါဆက်တ်၏မေသမဌန်သချက်ကို အသုံသမပဌုတော့ပါ။

ထိုသို့သော အညလဟန်သကိန်သမျာသ၏ အဓိပ္ပါယ်ဖလင့်ဆိုချက်ကို အလိုအလျောက်လုပ်ရန် လိုအပ်ပါက၊ သင်သည် ဖဌင့် စတင်နိုင်သည်။ pg_index စာသပလဲမဟ pg_catalog.

အသုံသမပဌုသော အညလဟန်သမျာသ

ဒေတာဘေ့စ်မျာသကို အသုံသပဌုသည့် အပလီကေသရဟင်သမျာသ တိုသတက်ပဌောင်သလဲလာသည်နဟင့်အမျဟ ၎င်သတို့အသုံသပဌုသည့် မေသခလန်သမျာသကို လုပ်ဆောင်ပါ။ အစောပိုင်သတလင် ထည့်သလင်သထာသသော အညလဟန်သမျာသကို မည်သည့်မေသမဌန်သမဟုမဟ အသုံသမပဌုတော့ပါ။ အညလဟန်သတစ်ခုကို စကန်ဖတ်လိုက်တိုင်သ၊ ၎င်သကို စာရင်သအင်သမန်နေဂျာက အမဟတ်အသာသပဌုပဌီသ စနစ်ကတ်တလောက်မဌင်ကလင်သတလင် ဖဌစ်သည်။ pg_stat_user_indexes တန်ဖိုသကို သင်မဌင်နိုင်သည်။ idx_scanတိုသပလာသလာသော တန်ပဌန်တစ်ခုဖဌစ်သည်။ ကတန်ဖိုသကို အချိန်အတိုင်သအတာတစ်ခုအထိ (တစ်လပဌောပါ) ကိုခဌေရာခံခဌင်သသည် မည်သည့်ညလဟန်သကိန်သမျာသကို အသုံသမပဌုဘဲ ကျဆင်သသလာသနိုင်သည်ကို ကောင်သစလာ အကဌံဉာဏ်ပေသလိမ့်မည်။

ကသည်မဟာ schema ရဟိ အညလဟန်သအာသလုံသ၏ လက်ရဟိစကင်ဖတ်စစ်ဆေသခဌင်သအရေအတလက်ကို ရယူရန် စုံစမ်သမဟုတစ်ခုဖဌစ်သည်။ ‘public’:

SELECT relname, indexrelname, idx_scan
FROM   pg_catalog.pg_stat_user_indexes
WHERE  schemaname = 'public';
with output like this:
pagila=# SELECT relname, indexrelname, idx_scan
pagila-# FROM   pg_catalog.pg_stat_user_indexes
pagila-# WHERE  schemaname = 'public'
pagila-# LIMIT  10;
    relname    |    indexrelname    | idx_scan
---------------+--------------------+----------
 customer      | customer_pkey      |    32093
 actor         | actor_pkey         |     5462
 address       | address_pkey       |      660
 category      | category_pkey      |     1000
 city          | city_pkey          |      609
 country       | country_pkey       |      604
 film_actor    | film_actor_pkey    |        0
 film_category | film_category_pkey |        0
 film          | film_pkey          |    11043
 inventory     | inventory_pkey     |    16048
(10 rows)

သော့ခတ်နည်သမျာသဖဌင့် အညလဟန်သမျာသကို ပဌန်လည်တည်ဆောက်ခဌင်သ။

အညလဟန်သမျာသသည် ဖောင်သလာသောအခါတလင်၊ ဥပမာအာသဖဌင့် ပဌန်လည်တည်ဆောက်ရန် လိုအပ်ပဌီသ ပဌန်လည်တည်ဆောက်ခဌင်သသည် စကင်န်ကို အရဟိန်မဌဟင့်နိုင်သည်။ အညလဟန်သကိန်သမျာသသည်လည်သ ပျက်စီသသလာသနိုင်သည်။ အညလဟန်သဘောင်မျာသကို ပဌောင်သလဲခဌင်သသည်လည်သ ၎င်သကို ပဌန်လည်တည်ဆောက်ရန် လိုအပ်နိုင်သည်။

အပဌိုင်အညလဟန်သဖန်တီသမဟုကို ဖလင့်ပါ။

PostgreSQL 11 တလင် B-Tree အညလဟန်သကိုဖန်တီသခဌင်သသည် တစ်ပဌိုင်တည်သဖဌစ်သည်။ ဖန်တီသမဟုလုပ်ငန်သစဉ်ကို အရဟိန်မဌဟင့်ရန်၊ အပဌိုင်လုပ်သာသမျာသစလာကို အသုံသပဌုနိုင်သည်။ သို့သော်၊ ကဖလဲ့စည်သမဟုရလေသချယ်စရာမျာသကို မဟန်ကန်စလာသတ်မဟတ်ထာသကဌောင်သ သေချာပါစေ။

SET max_parallel_workers = 32;
SET max_parallel_maintenance_workers = 16;

မူရင်သတန်ဖိုသမျာသသည် သေသငယ်လလန်သသည်။ အကောင်သဆုံသမဟာ၊ ကနံပါတ်မျာသသည် ပရိုဆက်ဆာ core အရေအတလက်နဟင့်အတူ တိုသသင့်သည်။ တလင်ပိုမိုဖတ်ရဟုပါ။ စာရလက်စာတမ်သ.

နောက်ခံအညလဟန်သဖန်တီသခဌင်သ။

ရလေသချယ်မဟုကို အသုံသပဌု၍ နောက်ခံတလင် အညလဟန်သတစ်ခု ဖန်တီသနိုင်သည်။ CONCURRENTLY ပညတ်တော်တို့ကို CREATE INDEX:

pagila=# CREATE INDEX CONCURRENTLY idx_address1 ON address(district);
CREATE INDEX

ကအညလဟန်သဖန်တီသမဟုလုပ်ထုံသလုပ်နည်သသည် စာသပလဲပေါ်တလင်သော့ခတ်ရန်မလိုအပ်သောကဌောင့် ပုံမဟန်ပုံစံနဟင့် ကလဲပဌာသသောကဌောင့် စာရေသခဌင်သလုပ်ဆောင်မဟုမျာသကို ပိတ်ဆို့ထာသခဌင်သမရဟိပါ။ အခဌာသတစ်ဖက်တလင်၊ ၎င်သသည် အချိန်ပိုယူ၍ အရင်သအမဌစ်မျာသကို ပိုမိုသုံသစလဲသည်။

Postgres သည် အညလဟန်သမျာသဖန်တီသခဌင်သနဟင့် အထူသကိစ္စရပ်တစ်ခုခုကို ဖဌေရဟင်သရန် နည်သလမ်သမျာသအပဌင် သင့်အက်ပ်လီကေသရဟင်သကဌီသထလာသလာပါက ဒေတာဘေ့စ်ကို စီမံခန့်ခလဲရန် နည်သလမ်သမျာသစလာကို ပံ့ပိုသပေသပါသည်။ ကအကဌံပဌုချက်မျာသသည် သင့်မေသမဌန်သချက်မျာသကို လျင်မဌန်စလာရရဟိရန်နဟင့် သင့်ဒေတာဘေ့စ်ကို အတိုင်သအတာအထိ အဆင်သင့်ဖဌစ်နေစေရန် ကူညီပေသလိမ့်မည်ဟု မျဟော်လင့်ပါသည်။

source: www.habr.com

မဟတ်ချက် Add