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

पोस्टग्रेज 9.1 बनाम मैसकल 5.6 InnoDB?

जब SQL सुविधाओं की बात आती है तो PostgreSQL बहुत अधिक उन्नत होता है।

चीजें जो MySQL के पास अभी भी नहीं है (और PostgreSQL के पास):

  • आस्थगित बाधाएं

  • <स्ट्राइक>चेक बाधाएं (MySQL 8.0.16 उन्हें जोड़ा, मारियाडीबी 10.2 ने उन्हें)

  • पूर्ण बाहरी जुड़ाव
    MySQL चुपचाप कुछ सिंटैक्स विविधताओं के साथ आंतरिक जुड़ाव का उपयोग करता है:
    https://rextester.com/ADME43793

  • पार्श्व जोड़

  • <स्ट्राइक>रेगुलर एक्सप्रेशन UTF-8 के साथ काम नहीं करते हैं (MySQL 8.0 के साथ फिक्स्ड)

  • <स्ट्राइक>रेगुलर एक्सप्रेशन रिप्लेस या सबस्ट्रिंग को सपोर्ट नहीं करते हैं (MySQL 8.0 के साथ पेश किया गया)

  • तालिका फ़ंक्शन ( select * from my_function() )

  • <स्ट्राइक>सामान्य टेबल एक्सप्रेशन (MySQL 8.0 के साथ पेश किया गया)

  • <स्ट्राइक>पुनरावर्ती प्रश्न (MySQL 8.0 के साथ पेश किया गया)

  • लिखने योग्य सीटीई

  • <स्ट्राइक>विंडो फ़ंक्शन (MySQL 8.0 के साथ पेश किया गया)

  • फ़ंक्शन आधारित अनुक्रमणिका

  • आंशिक अनुक्रमणिका

  • अनुक्रमणिका में अतिरिक्त स्तंभ शामिल करें (उदा. अद्वितीय अनुक्रमणिका के लिए)

  • बहु स्तंभ आँकड़े

  • <स्ट्राइक>लेन-देन संबंधी तालिकाओं पर पूर्ण पाठ खोज (MySQL 5.6 इसका समर्थन करता है)

  • ट्रांजेक्शनल टेबल पर जीआईएस सुविधाएं

  • EXCEPT या INTERSECT ऑपरेटर (MariaDB के पास है)

  • आप एक ही चयन कथन में दो बार अस्थायी तालिका का उपयोग नहीं कर सकते हैं

  • आप उप-चयन में तालिका को बदलने (अपडेट/डिलीट/सम्मिलित) का उपयोग नहीं कर सकते हैं

  • <स्ट्राइक>आप एक ऐसा दृश्य नहीं बना सकते जो व्युत्पन्न तालिका का उपयोग करता हो (MySQL 8.0 के बाद से संभव)

      create view x as select * from (select * from y);
    
  • स्टेटमेंट लेवल रीड कंसिस्टेंसी। उदाहरण के लिए आवश्यक:
    update foo set x = y, y = x या
    update foo set a = b, a = a + 100

  • लेन-देन संबंधी डीडीएल

  • डीडीएल ट्रिगर

  • बहिष्करण बाधाएं

  • की/वैल्यू स्टोर

  • संपूर्ण JSON दस्तावेज़ों को अनुक्रमित करना

  • SQL/JSON पाथ एक्सप्रेशन (पोस्टग्रेज 12 के बाद से)

  • श्रेणी प्रकार

  • डोमेन

  • सरणियाँ (सरणी पर अनुक्रमणिका सहित)

  • उपयोगकर्ता विशेषाधिकारों को प्रबंधित करने के लिए <स्ट्राइक>भूमिकाएं (समूह) (मारियाडीबी ने उन्हें, MySQL 8.0 के साथ पेश किया है)

  • समानांतर क्वेरी (पोस्टग्रेज 9.6 . के बाद से) )

  • समानांतर सूचकांक निर्माण (पोस्टग्रेज 11 के बाद से)

  • उपयोगकर्ता परिभाषित डेटा प्रकार (चेक बाधाओं सहित)

  • भौतिक दृश्य

  • कस्टम समुच्चय

  • कस्टम विंडो फ़ंक्शन

  • उचित boolean डेटा प्रकार
    (किसी भी व्यंजक को गैर-शून्य संख्या में "सत्य" के रूप में परिवर्तित करना नहीं है एक उचित बूलियन प्रकार)

जब स्थानिक/जीआईएस सुविधाओं की बात आती है तो पोस्टजीआईएस के साथ पोस्टग्रेज भी अधिक सक्षम होते हैं। यहाँ एक अच्छी तुलना है।

सुनिश्चित नहीं है कि आप "उपयोग में आसानी" को क्या कहते हैं, लेकिन कई आधुनिक एसक्यूएल विशेषताएं हैं जिन्हें मैं याद नहीं करना चाहता (सीटीई, विंडोिंग फ़ंक्शन) जो मेरे लिए "उपयोग में आसानी" को परिभाषित करेगा।

अब, पोस्टग्रेएसक्यूएल सही नहीं है और शायद सबसे अधिक अप्रिय बात यह हो सकती है कि एक भारी लेखन डेटाबेस के लिए खतरनाक वैक्यूम प्रक्रिया को ट्यून किया जाए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. HikariCP Postgresql ड्राइवर JDBC URL को स्वीकार नहीं करने का दावा करता है

  2. PostgreSQL के लिए शीर्ष PG क्लस्टरिंग उच्च उपलब्धता समाधान

  3. सरणी तत्वों के क्रम के साथ सरणी प्रकार के साथ PostgreSQL जॉइन, कैसे कार्यान्वित करें?

  4. Postgresql में अजीब व्यवहार

  5. लेन-देन से प्रभावित नहीं अनुक्रम?