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