2010-05-26 17 views
11

मैं वर्षों से MySQL का उपयोग कर रहा हूं, मुख्य रूप से पिछले साल तक छोटी परियोजनाओं पर। मुझे यकीन नहीं है कि यह भाषा की प्रकृति है या वास्तविक ट्यूटोरियल की कमी है जो मुझे अनिश्चित होने की भावना देता है अगर मैं जो लिख रहा हूं वह अनुकूलन उद्देश्यों और स्केलिंग उद्देश्यों के लिए उचित तरीका है।एक MySQL विशेषज्ञ बनने का सबसे तेज़ तरीका?

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

MySQL के साथ, मुझे यकीन नहीं है कि (और किस मामले में) एक INNER जॉइन या बाएं जॉइन का उपयोग किया जाना चाहिए, और न ही मुझे इसकी बड़ी मात्रा में कार्यक्षमता पता है। जबकि मैंने डेटाबेस के लिए कोड लिखा है जो लाखों रिकॉर्डों को संभाला है, मुझे नहीं पता कि यह इष्टतम है या नहीं। मुझे अक्सर पता चलता है कि एक छोटा ट्विक एक मूल समय के 1/10 से कम समय ले लेगा ... लेकिन मुझे कैसे पता चलेगा कि मेरी वर्तमान क्वेरी भी धीमी नहीं है?

मैं डेटाबेस को अनुकूलित करने और स्केलेबल होने की क्षमता में इस क्षेत्र में पूरी तरह आत्मविश्वास बनना चाहता हूं। उपयोग एक समस्या नहीं है - मैं इसे कई अलग-अलग तरीकों से दैनिक आधार पर उपयोग करता हूं।

तो सवाल यह है कि पथ क्या है? किताब पढ़ें? वेबसाइट/ट्यूटोरियल? सिफारिशें?

+0

FWIW, MySQL- विशिष्ट अनुकूलन से अलग, आपने सामान्य SQL का वर्णन किया है। यदि आपको ट्यूटोरियल या गाइड ढूंढने में परेशानी हो रही है, तो शायद ऐसा इसलिए है क्योंकि आप खोज की बहुत संकीर्ण कोशिश कर रहे हैं? –

+0

आप देखते हैं, मैं एसक्यूएल कहूंगा, लेकिन मैं हमेशा इस तथ्य में भाग लेता हूं कि लोग जोर देते हैं कि एसक्यूएल थोड़ा अलग, अधिक शक्तिशाली, अन्य विशेषताएं हैं। मुझे खुशी है कि आप यहां वही कह रहे हैं। –

उत्तर

4

EXPLAIN एक के लिए आपका मित्र है। यदि आप इस टूल का उपयोग करना सीखते हैं, तो आप अपने प्रश्नों को बहुत प्रभावी ढंग से अनुकूलित करने में सक्षम होना चाहिए।

  • MySQL मैनुअल स्कैन और पढ़ पॉल DuBois 'MySQL किताब।
  • एक्स्पलाइन चयन का उपयोग करें, वैरिएबल दिखाएं, स्थिति दिखाएं और प्रोसेसलिस्ट दिखाएं।
  • जानें कि क्वेरी ऑप्टिमाइज़र कैसे काम करता है।
  • अपने टेबल स्वरूपों को अनुकूलित करें।
  • अपनी तालिकाओं को बनाए रखें (myisamchk, तालिका जांचें, तालिका को अनुकूलित करें)।
  • चीजें तेजी से करने के लिए MySQL एक्सटेंशन का उपयोग करें।
  • यदि आप देखते हैं कि आपको कई स्थानों पर फ़ंक्शन की आवश्यकता होगी तो एक MySQL UDF फ़ंक्शन लिखें।
  • यदि आपको वास्तव में की आवश्यकता नहीं है तो तालिका स्तर या कॉलम स्तर पर अनुदान का उपयोग न करें।

http://dev.mysql.com/tech-resources/presentations/presentation-oscon2000-20000719/index.html

5

केवल किसी चीज़ में विशेषज्ञ बनने का तरीका अनुभव है और आमतौर पर समय लगता है। और एक अच्छा सलाहकार जो आपको सिखाता है कि आप क्या खो रहे हैं। समस्या यह है कि आप नहीं जानते कि आप क्या जानते हैं।

+0

राइट - मैं सहमत हूं, मैंने 3 1/2 साल पूर्णकालिक प्रोग्रामर बिताया है, और मुझे कई अन्य क्षेत्रों में एक विशेषज्ञ लगता है, जिनमें से कुछ मैंने MySQL के साथ कम समय बिताया है। मैं अगला कदम लेना चाहता हूं। –

1

एमआईटी खुला कोर्सवेयर डेटाबेस के बारे में कुछ है तो मैं नहीं जानता कि ... खैर whaddya पता है? वे करते हैं: http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-830Fall-2005/CourseHome/

मैं अनुशंसा करता हूं कि केवल एक स्रोत के रूप में एमआईटी प्रतिष्ठा पर आधारित है। यदि आप विश्वविद्यालय से औपचारिक पाठ्यक्रम ले सकते हैं तो आपको वह सहायक मिल सकता है। मौलिक असतत गणित/तर्क की भी अच्छी समझ के साथ निश्चित रूप से कोई नुकसान नहीं होगा।

2

अनुसंधान और अनुभव - यदि आपके पास अनुसंधान की गारंटी देने के लिए परियोजनाएं नहीं हैं, तो उन्हें बनाएं। संबंधित डेटा के साथ तीन टेबल बनाएं और परिदृश्य बनाएं।

उदा।

अपने डेटा फिल्मों की एक तालिका

उपयोगकर्ता

की एक तालिका बनाने के सीखने कैसे काम मिलती है उन

के लिए रेटिंग की एक तालिका बनाने के

खर्च समय निकालें, कैसे एक विशेष रेटिंग की फिल्में पाने के लिए एक प्रश्न में रेंज, मूवीज़ टेबल (जैसे, रेगेक्स) को कैसे खोजें - जैसा कि बताया गया है, यह देखने के लिए व्याख्या करें कि विभिन्न चीजें गति को कैसे प्रभावित करती हैं। इसका एक दिन बनाओ; मैं गारंटी देता हूं कि पर संभाल लेंगे, इसमें काफी वृद्धि होगी।

यदि आप अभी भी केस-परिदृश्यों के लिए संघर्ष कर रहे हैं, तो प्रश्नों के लिए SO पर यहां देखना शुरू करें और उन परिदृश्यों को स्वयं आज़माएं।

+1

उन्नत स्तर - फिल्में रेटिंग करते समय देखें कि किन उपयोगकर्ताओं के पास सबसे समान स्वाद हैं। हालांकि इसे संग्रहीत प्रो या PHP में किया जाना पड़ सकता है। –

1

जैसा कि अन्य ने कहा है, समय और अभ्यास ही एकमात्र वास्तविक दृष्टिकोण है।

अधिक व्यावहारिक रूप से, मैंने पाया कि EXPLAIN ने व्यक्तिगत रूप से मेरे लिए चमत्कार किए। उस के आउटपुट को पढ़ने के लिए सीखना संभवतः सबसे बड़ी एकल छलांग थी जिसे मैंने कुशल प्रश्न लिखने में सक्षम बनाया था।

दूसरी चीज़ जो मैंने वास्तव में उपयोगी पाया वह SQL Tuning by Dan Tow था, जो निष्पादन निकालने के लिए एक औपचारिक पद्धति का वर्णन करता है। यह थोड़ा सा शामिल है, लेकिन कई स्थितियों में अच्छी तरह से काम करता है। और यदि कुछ और नहीं है, तो यह आपको संसाधित होने के तरीकों की एक बेहतर समझ देगा। इस तरह एक वर्ग के साथ

0

प्रारंभ: https://www.udemy.com/sql-mysql-databases/

तो क्या बनाने और प्रबंधित करने SQL डेटाबेस के एक नंबर और प्रश्नों को चलाने के लिए सीखा है का उपयोग करें। विशेषज्ञ स्तर तक पहुंच वास्तव में अभ्यास के बारे में है। लेकिन निश्चित रूप से आपको अभ्यास करने से पहले टुकड़ों को सीखना होगा।

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