PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

PostgreSQL की छिपी विशेषताएं

चूंकि पोस्टग्रेज MySQL की तुलना में बहुत अधिक समझदार है, इसलिए रिपोर्ट करने के लिए कई "ट्रिक्स" नहीं हैं;-)

मैनुअल में कुछ अच्छी प्रदर्शन युक्तियाँ हैं।

कुछ अन्य प्रदर्शन संबंधी बातें ध्यान में रखें:

  • सुनिश्चित करें कि ऑटोवैक्यूम चालू है
  • सुनिश्चित करें कि आप अपने postgres.conf (प्रभावी कैश आकार, साझा बफ़र्स, वर्क मेम ... ट्यून करने के लिए बहुत सारे विकल्प) पढ़ चुके हैं।
  • अपने "वास्तविक" डेटाबेस कनेक्शन को न्यूनतम रखने के लिए pgpool या pgbouncer का उपयोग करें
  • जानें कि व्याख्या और व्याख्या विश्लेषण कैसे काम करता है। आउटपुट पढ़ना सीखें।
  • क्लस्टर डिस्क पर डेटा को इंडेक्स के अनुसार सॉर्ट करता है। बड़ी (ज्यादातर) केवल-पढ़ने के लिए तालिकाओं के प्रदर्शन में नाटकीय रूप से सुधार कर सकता है। क्लस्टरिंग एक बार का ऑपरेशन है:जब तालिका को बाद में अपडेट किया जाता है, तो परिवर्तन क्लस्टर नहीं होते हैं।

यहां कुछ चीजें दी गई हैं जो मुझे उपयोगी लगी हैं जो कि कॉन्फ़िगरेशन या प्रदर्शन से संबंधित नहीं हैं।

यह देखने के लिए कि वर्तमान में क्या हो रहा है:

select * from pg_stat_activity;

विविध प्रकार्य खोजें:

select * from pg_proc WHERE proname ~* '^pg_.*'

डेटाबेस का आकार खोजें:

select pg_database_size('postgres');
select pg_size_pretty(pg_database_size('postgres'));

सभी डेटाबेस का आकार खोजें:

select datname, pg_size_pretty(pg_database_size(datname)) as size
  from pg_database;

टेबल और इंडेक्स का आकार ढूंढें:

select pg_size_pretty(pg_relation_size('public.customer'));

या, सभी तालिकाओं और अनुक्रमितों को सूचीबद्ध करने के लिए (शायद इसे देखना आसान है):

select schemaname, relname,
    pg_size_pretty(pg_relation_size(schemaname || '.' || relname)) as size
  from (select schemaname, relname, 'table' as type
          from pg_stat_user_tables
        union all
        select schemaname, relname, 'index' as type
          from pg_stat_user_indexes) x;

ओह, और आप लेन-देन को नेस्ट कर सकते हैं, आंशिक लेन-देन को रोलबैक कर सकते हैं++

test=# begin;
BEGIN
test=# select count(*) from customer where name='test';
 count 
-------
     0
(1 row)
test=# insert into customer (name) values ('test');
INSERT 0 1
test=# savepoint foo;
SAVEPOINT
test=# update customer set name='john';
UPDATE 3
test=# rollback to savepoint foo;
ROLLBACK
test=# commit;
COMMIT
test=# select count(*) from customer where name='test';
 count 
-------
     1
(1 row)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL द्वारा समर्थित टाइमज़ोन की सूची लौटाएं

  2. PostgreSQL -ग्रुप बाय क्लॉज में दिखाई देना चाहिए या एक समग्र फ़ंक्शन में उपयोग किया जाना चाहिए

  3. INSERT कमांड ::त्रुटि:कॉलम मान मौजूद नहीं है

  4. PostgreSQL में यूजर पासवर्ड कैसे बदलें

  5. क्लॉज जानने के लिए ध्यान रखें:सेलेक्ट, फ्रॉम, व्हेयर, ग्रुप बाय, हैविंग, ऑर्डर बाय, और लिमिट के बारे में सब कुछ