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

विंडोज पर PostgreSQL इतना धीमा क्यों है?

ऐसे मामले हैं जहां विंडोज़ पर पोस्टग्रेएसक्यूएल अन्य समाधानों की तुलना में अतिरिक्त ओवरहेड का भुगतान करता है, जब हम इसे पोर्ट करते समय किए गए ट्रेडऑफ के कारण होते हैं।

उदाहरण के लिए, PostgreSQL प्रति कनेक्शन एक प्रक्रिया का उपयोग करता है, MySQL एक थ्रेड का उपयोग करता है। यूनिक्स पर, यह आमतौर पर ध्यान देने योग्य प्रदर्शन अंतर नहीं है, लेकिन विंडोज़ पर नई प्रक्रियाएं बनाना बहुत महंगा है (फोर्क() सिस्टम कॉल की कमी के कारण)। इस कारण से, लगातार कनेक्शन या कनेक्शन पूलर का उपयोग करना बहुत है PostgreSQL का उपयोग करते समय विंडोज़ पर अधिक महत्वपूर्ण।

एक और मुद्दा जो मैंने देखा है, वह यह है कि विंडोज़ पर शुरुआती पोस्टग्रेएसक्यूएल डिफ़ॉल्ट रूप से यह सुनिश्चित करेगा कि यह लिखने वाले कैश के माध्यम से जा रहा है - भले ही यह बैटरी समर्थित हो। AFAIK, MySQL ऐसा नहीं करता है, और यह लेखन प्रदर्शन को बहुत प्रभावित करेगा। अब, यह वास्तव में आवश्यक है यदि आपके पास एक गैर-सुरक्षित हार्डवेयर है, जैसे कि एक सस्ता ड्राइव। लेकिन अगर आपके पास बैटरी-समर्थित लेखन कैश है, तो आप इसे नियमित fsync में बदलना चाहते हैं। PostgreSQL के आधुनिक संस्करण (निश्चित रूप से 8.3) इसके बजाय open_datasync के लिए डिफ़ॉल्ट होंगे, जिससे यह अंतर दूर हो जाएगा।

आपने डेटाबेस के कॉन्फ़िगरेशन को कैसे ट्यून किया है, इसके बारे में आप कुछ भी नहीं बताते हैं। डिफ़ॉल्ट रूप से, PostgreSQL के साथ भेजी गई कॉन्फ़िगरेशन फ़ाइल बहुत है अपरिवर्तनवादी। यदि आपने वहां कुछ भी नहीं बदला है, तो आपको निश्चित रूप से इसे देखने की आवश्यकता है। कुछ ट्यूनिंग सलाह PostgreSQL wiki पर उपलब्ध है। ।

कोई और विवरण देने के लिए, आपको बहुत अधिक विवरण प्रदान करना होगा कि वास्तव में क्या धीमा चलता है, और आपने अपने डेटाबेस को कैसे ट्यून किया है। मैं pgsql-सामान्य मेलिंगलिस्ट को एक ईमेल सुझाऊंगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL कमांड प्रॉम्प्ट के माध्यम से वर्डप्रेस एडमिन पासवर्ड कैसे रीसेट करें

  2. जॉइन के साथ सेलेक्ट से अपडेट कैसे करें

  3. उपयोगकर्ता खाता प्रबंधन, भूमिकाएं, अनुमतियां, प्रमाणीकरण PHP और MySQL - भाग 2

  4. JDBC के साथ SparkSession.sql() का उपयोग करें

  5. क्या मेरे पास संकुल अनुक्रमणिका के बिना प्राथमिक कुंजी हो सकती है? क्या मेरे पास मल्टीवैल्यूड क्लस्टर इंडेक्स भी हो सकता है?