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

Postgresql में क्षैतिज शार्प का एक अच्छा तरीका क्या है?

PostgreSQL दो अलग-अलग तरीकों से विभाजन की अनुमति देता है। एक सीमा के अनुसार है और दूसरा सूची के अनुसार है। दोनों विभाजन करने के लिए तालिका वंशानुक्रम का उपयोग करते हैं।
सीमा के आधार पर विभाजन, आमतौर पर एक तिथि सीमा, सबसे आम है, लेकिन सूची के आधार पर विभाजन उपयोगी हो सकता है यदि विभाजन वाले चर स्थिर हैं और तिरछे नहीं हैं।

विभाजन टेबल इनहेरिटेंस के साथ किया जाता है, इसलिए सबसे पहले नए चाइल्ड टेबल को सेट करना है।

CREATE TABLE measurement (
    x        int not null,
    y        date not null,
    z        int
);

CREATE TABLE measurement_y2006 ( 
    CHECK ( logdate >= DATE '2006-01-01' AND logdate < DATE '2007-01-01' )
) INHERITS (measurement);

CREATE TABLE measurement_y2007 (
    CHECK ( logdate >= DATE '2007-01-01' AND logdate < DATE '2008-01-01' ) 
) INHERITS (measurement);

फिर डेटा को सही तालिकाओं में छोड़ने के लिए नियमों या ट्रिगर्स का उपयोग करने की आवश्यकता होती है। बल्क अपडेट पर नियम तेज़ होते हैं, एकल अपडेट पर ट्रिगर होते हैं और साथ ही बनाए रखना आसान होता है। यहाँ एक नमूना ट्रिगर है।

CREATE TRIGGER insert_measurement_trigger
    BEFORE INSERT ON measurement
    FOR EACH ROW EXECUTE PROCEDURE measurement_insert_trigger();

और ट्रिगर फ़ंक्शन डालने के लिए

CREATE OR REPLACE FUNCTION measurement_insert_trigger()
RETURNS TRIGGER AS $$
BEGIN
    IF ( NEW.logdate >= DATE '2006-01-01' 
         AND NEW.logdate < DATE '2007-01-01' ) THEN
        INSERT INTO measurement_y2006 VALUES (NEW.*);
    ELSIF ( NEW.logdate >= DATE '2007-01-01' 
            AND NEW.logdate < DATE '2008-01-01' ) THEN
        INSERT INTO measurement_y2006m03 VALUES (NEW.*);
    ELSE
        RAISE EXCEPTION 'Date out of range.';
    END IF;
    RETURN NULL;
END;
$$
LANGUAGE plpgsql;

ये उदाहरण आसान पढ़ने के लिए postgresql दस्तावेज़ीकरण के सरलीकृत संस्करण हैं।

मैं pgpool2 से परिचित नहीं हूं, लेकिन gridsql एक व्यावसायिक उत्पाद है जिसे EnterpriseDB के लिए डिज़ाइन किया गया है, एक वाणिज्यिक डेटाबेस जो postgresql के शीर्ष पर बनाया गया है। उनके उत्पाद बहुत अच्छे हैं, लेकिन मुझे नहीं लगता कि यह मानक पोस्टग्रेज़ल पर काम करेगा।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कैसे Pi () PostgreSQL में काम करता है

  2. कैसे CONCAT_WS () PostgreSQL में काम करता है

  3. PostgreSQL:डिफ़ॉल्ट बाधा नाम

  4. क्या डेटाबेस के भीतर सरणियों का उपयोग करना खराब डिज़ाइन है?

  5. ver.2 PyGreSQL त्रुटि:_pg आयात से * ImportError:DLL लोड विफल:निर्दिष्ट मॉड्यूल नहीं मिला