2010-02-23 19 views
5

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

मुझे डीबी के पुनर्गठन, और न ही अनुक्रमण के बारे में कुछ भी पता नहीं है। (वास्तव में कुछ भी नहीं जानते 'वास्तव में बीबी डीबीएस।) सभी पॉइंटर्स ने तीनों क्षेत्रों में से किसी एक में बहुत सराहना की!

उत्तर

10

हमेशा माप के साथ शुरू करें। जब तक आपको पता न हो कि कोई बाधाएं कहां हैं, आपको नहीं पता कि क्या सुधार करना है। "किसी भी प्रदर्शन डेटा पर भी देखे बिना" आपको सही कॉल करने की संभावना नहीं है - या कम से कम, मुझे अक्सर लगता है कि I प्रदर्शन कहां चोट पहुंच रहा है, इसके बारे में गलत अनुमान लगाते हैं। हो सकता है कि आप मुझसे अनुमान लगाने में बेहतर हों :) (बेशक, यह आपके कोड में डेटाबेस में भी हो सकता है ...)

मापने के उपकरण लॉग विवरणों के रूप में सरल हो सकते हैं यह देखने के लिए कि विभिन्न प्रकार के अनुरोध कितने समय तक हैं पूर्ण प्रोफाइलरों, क्वेरी विश्लेषकों आदि को ले जाएं, डेटाबेस पक्ष पर, आप निश्चित रूप से क्वेरी निष्पादन योजनाओं को देखने के लिए EXPLAIN का उपयोग करना चाहेंगे ... लेकिन इससे पहले आप जानना चाहेंगे कि कौन से प्रश्न आपको चोट पहुंचा रहे हैं पहली जगह, और इससे भी अधिक, जो वेब सेवा के लिए अनुरोध करता है वह महंगे हैं।

+1

प्रोफ़ाइल प्रारंभिक और अक्सर उपयोग करने पर कब और कब पढ़ना है। स्पाइक समाधान बनाते समय डिजाइन समय पर प्रोफाइलिंग शुरू करें। प्रदर्शन परीक्षण के हिस्से के रूप में प्रोफाइलिंग शामिल करें। प्रोफाइल उत्पादन संचालन। विकास प्रक्रिया में हर समय संभावित "हॉट स्पॉट" की सूची होनी चाहिए। –

+0

यदि आप किसी भी उपकरण के बारे में जानते हैं जो मुझे माप करने में मदद करता है, तो यह भव्य होगा। –

+0

"php profiler" के तहत एक त्वरित खोज बहुत सारी हिट देती है। कई वाणिज्यिक समाधान प्रतीत होते हैं, और कुछ मुफ्त विकल्प भी हो सकते हैं। – TMN

2

डीबी को छूने से पहले best practices from yahoo देखें (और इससे पहले कि आपकी बाधा पहचानें)। आप एक छोटी गति सुधार के लिए बहुत समय बिताना नहीं चाहते हैं, आमतौर पर लिंक में युक्तियों का उपयोग करके बड़ी गति अप हासिल की जा सकती है।

अपने फ्रंटएंड को प्रोफाइल करने के लिए आप page speed का उपयोग कर सकते हैं।

2

जैसा कि बाकी ने कहा है कि आप पहले अपनी बाधाओं को पहचानते हैं।

जहाँ तक डीबी के बारे में अपनी चिंताओं से चला जाता है के रूप में मैं धीमी गति से प्रश्नों (केवल जब पहचान) में तेजी लाने के

http://www.postgresql.org/docs/8.2/static/sql-createindex.html

CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] name ON table [ USING method ] 
    ({ column | (expression) } [ opclass ] [, ...]) 
    [ WITH (storage_parameter = value [, ... ]) ] 
    [ TABLESPACE tablespace ] 
    [ WHERE predicate ] 

कृपया कुछ करने के लिए सुनिश्चित करें कि आपके टेबल पर कुछ अनुक्रमणिकाएं बनाने का सुझाव इंडेक्स

संबंधित मुद्दे