मैं एक बहुत ही सरल SQL क्वेरी है:PostgreSQL COUNT (DISTINCT ...) बहुत धीमी गति से
SELECT COUNT(DISTINCT x) FROM table;
मेरे मेज के बारे में 15 लाख पंक्तियां हैं। यह क्वेरी बहुत धीमी गति से चल रही है;
SELECT COUNT(x) FROM table;
की तुलना में इसमें लगभग 7.535 लगते हैं, जिसमें लगभग 435ms लगते हैं। प्रदर्शन में सुधार के लिए मेरी क्वेरी बदलने का कोई तरीका है? मैंने समूहबद्ध करने और नियमित गणना करने की कोशिश की है, साथ ही एक्स पर एक इंडेक्स डालने की कोशिश की है; दोनों के पास 7.5 वें निष्पादन का समय है।
मैं ऐसा नहीं सोचता:
यह बहुत तेजी से है। 1.5 मिलियन पंक्तियों के विशिष्ट मूल्य प्राप्त करना धीमा होने जा रहा है। – Ryan
मैंने इसे सी # में आजमाया, स्मृति से 1.5 मिलियन * पूर्णांक के विशिष्ट मान प्राप्त करने * मेरे कंप्यूटर पर एक सेकंड से अधिक समय लेता है। तो मुझे लगता है कि आप शायद भाग्य से बाहर हैं। – Ryan
क्वेरी प्लान टेबल संरचना (इंडेक्स) और ट्यूनिंग स्थिरांक (कार्य) मेम, प्रभावी_cache_size, random_page_cost) की सेटिंग पर निर्भर करेगा। उचित ट्यूनिंग के साथ क्वेरी को संभवतः एक सेकंड से भी कम समय में निष्पादित किया जा सकता है। – wildplasser