प्रौद्योगिकी साझेदारी

[साक्षात्कारप्रश्नाः] MySQL (भागः ४)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. MySQL स्टेट्मेण्ट् इत्यस्य निष्पादनस्य चरणानां विषये विस्तरेण वदामः ।

SQL क्रमेण निष्पादयितुं Server लेयरस्य कृते पदानि सन्ति :

क्लायन्ट् अनुरोध -> कनेक्टर् (उपयोक्तृपरिचयं सत्यापयन्तु तथा अनुमतिः अनुदानं कुर्वन्तु) क्वेरी कैश (यदि कैशः अस्ति तर्हि प्रत्यक्षतया प्रत्यागच्छतु, यदि नास्ति तर्हि तदनन्तरं कार्यं कुर्वन्तु) विश्लेषकः (SQL इत्यस्य शाब्दिकविश्लेषणं वाक्यविन्यासविश्लेषणं च कुर्वन्तु) अनुकूलकः (मुख्यतया निष्पादनं SQL अनुकूलनविधिं कुर्वन्तु चयनार्थं optimal execution plan) Executor (निष्पादनकाले प्रथमं परीक्षते यत् उपयोक्तुः निष्पादनस्य अनुमतिः अस्ति वा, ततः अस्मिन् इञ्जिनेण प्रदत्तस्य अन्तरफलकस्य उपयोगं करिष्यति) -> data return प्राप्तुं इञ्जिनस्तरं प्रति गच्छन्तु (यदि query cache चालू अस्ति, it will Caching प्रश्नपरिणामम्)

2.बफर पूल

Buffer Pool MySQL दत्तांशकोशे InnoDB भण्डारणइञ्जिनस्य महत्त्वपूर्णः भागः अस्ति यस्य उपयोगः मुख्यतया डिस्क I/O संचालनं न्यूनीकर्तुं तथा च आँकडाधारसंसाधनदक्षतां सुधारयितुम् तालिकादत्तांशं अनुक्रमणिकादत्तांशं च संग्रहीतुं भवति Buffer Pool इत्यस्य विस्तृतं विश्लेषणं निम्नलिखितम् अस्ति ।

1. मूलभूतसंकल्पना

  • परिभाषा: Buffer Pool InnoDB भण्डारणइञ्जिन् मध्ये एकः स्मृतिक्षेत्रः अस्ति, यस्य उपयोगः डिस्कस्य प्रत्यक्षप्रवेशं न्यूनीकर्तुं डिस्कमध्ये आँकडापृष्ठानि अनुक्रमणिकापृष्ठानि च संग्रहणार्थं भवति ।

  • परिणाम: दत्तांशप्रवेशवेगं सुधारयन्तु तथा च कैशिंग् तन्त्रेण डिस्क I/O व्ययस्य न्यूनीकरणं कुर्वन्तु।

  • रचना : Buffer Pool इत्यस्मिन् संग्रहीतदत्तांशपृष्ठानि (Page) तत्सम्बद्धानि नियन्त्रणखण्डानि च सन्ति । नियन्त्रणखण्डः सञ्चयपृष्ठस्य मेटाडाटासूचनाः संगृह्णाति, यथा यस्य सारणीस्थानस्य सः अन्तर्भवति, दत्तांशपृष्ठसङ्ख्या, बफरपूले संग्रहपृष्ठस्य पता इत्यादयः

2. आकारः विन्यासः च

  • पूर्वनिर्धारित आकारः: MySQL मध्ये Buffer Pool इत्यस्य पूर्वनिर्धारित आकारः प्रायः 128MB भवति (किन्तु कृपया ध्यानं कुर्वन्तु यत् MySQL इत्यस्य भिन्नाः संस्करणाः अथवा भिन्नाः विन्यासाः पूर्वनिर्धारित आकारस्य भिन्नतां जनयितुं शक्नुवन्ति) ।

  • विन्यासमापदण्डाः:उत्तीर्णःinnodb_buffer_pool_sizeपैरामीटर्स् Buffer Pool इत्यस्य आकारं विन्यस्तुं शक्नुवन्ति सामान्यतया सिस्टम् मेमोरी इत्यस्य 60%-80% इति सेट् कर्तुं अनुशंसितम् ।

  • स्मृतिविनियोगः: Buffer Pool इति निरन्तरस्मृतिस्थानं यदा MySQL किञ्चित्कालं यावत् चाल्यते तदा अस्मिन् स्मृतिस्थाने मुक्तसञ्चयपृष्ठानि प्रयुक्तानि च संग्रहणपृष्ठानि च भविष्यन्ति ।

3. दत्तांशपृष्ठप्रकाराः प्रबन्धनं च

  • प्रकारः

    : बफर पूल् मध्ये आँकडा पृष्ठानि तेषां स्थितिनुसारं त्रयः प्रकाराः विभक्तुं शक्यन्ते : Free Page, Clean Page तथा Dirty Page इति ।

    • मुक्तपृष्ठानि : सञ्चयपृष्ठानि येषां उपयोगः न भवति ।

    • पृष्ठं स्वच्छं कुर्वन्तु : एकं संग्रहपृष्ठं यस्य उपयोगः कृतः परन्तु दत्तांशः परिवर्तितः नास्ति ।

    • मलिनपृष्ठम् : एकं संग्रहपृष्ठं यस्य उपयोगः कृतः अस्ति तथा च दत्तांशः परिवर्तितः अस्ति, तस्य दत्तांशः च डिस्कस्थदत्तांशैः सह असङ्गतः अस्ति ।

  • प्रबंधनं

    : InnoDB एतानि कैशे पृष्ठानि त्रयाणां लिङ्क्ड् सूचीसंरचनानां माध्यमेन प्रबन्धयति:

    • मुक्तलिङ्क् कृतसूची: मुक्तपृष्ठानां प्रबन्धनं करोति तथा च मुक्तसञ्चयपृष्ठानां नियन्त्रणखण्डसूचना अभिलेखयति ।

    • LRU लिङ्क्ड् सूची: स्वच्छपृष्ठानि गन्दानि च पृष्ठानि प्रबन्धयति, उन्नतं LRU एल्गोरिदम् उपयुज्यते, तथा च कैश हिट् दरं अनुकूलितुं युवाक्षेत्रेषु पुरातनक्षेत्रेषु च विभक्तं भवति

    • Flush linked list: मलिनपृष्ठानि प्रबन्धयति येषां डिस्कं प्रति फ्लश करणीयम् अस्ति, परिवर्तनसमयेन क्रमबद्धम् ।

4. कार्यतन्त्रम्

  • दत्तांशप्रवेशः : यदा दत्तांशपृष्ठं अभिगन्तुं आवश्यकं भवति तदा InnoDB प्रथमं पृष्ठं Buffer Pool मध्ये पूर्वमेव अस्ति वा इति परीक्षयिष्यति । यदि पूर्वमेव अस्ति तर्हि पृष्ठस्य प्रत्यक्षं उपयोगः भवति यदि नास्ति तर्हि पृष्ठं डिस्कतः Buffer Pool मध्ये पठ्यते तथा च तत्सम्बद्धा लिङ्क् कृतसूची अद्यतनं भवति ।

  • Data Update: यदा दत्तांशपृष्ठं परिवर्तितं भवति तदा पृष्ठं मलिनपृष्ठरूपेण चिह्नितं भविष्यति तथा च पृष्ठभूमिसूत्रेण डिस्कं प्रति प्रवाहयितुं प्रतीक्षितुं Flush लिङ्क्ड् सूचीयां योजितुं शक्यते

  • cache निष्कासनम्: यदा Buffer Pool स्थानं अपर्याप्तं भवति तदा LRU एल्गोरिदम् अनुसारं न्यूनतमं सद्यः प्रयुक्तं cache पृष्ठं समाप्तं भविष्यति ।

5. अनुकूलनं सावधानता च

  • आकारं समुचितरूपेण सेट् कुर्वन्तु: सिस्टम् मेमोरी तथा डाटाबेस् लोड कंडीशन्स् इत्येतयोः आधारेण उचितसेटिंग्स्innodb_buffer_pool_sizeपैरामीटर्।

  • निरीक्षणं समायोजनं च कुर्वन्तु: बफर पूलस्य उपयोगस्य कार्यप्रदर्शनसूचकानां च नियमितरूपेण निरीक्षणं कुर्वन्तु तथा आवश्यकतानुसारं समायोजनं कुर्वन्तु।

  • पूर्ण टेबल स्कैन् परिहरन्तु: पूर्णसारणीस्कैन् इत्यस्य कारणेन Buffer Pool इत्यस्मिन् बृहत्संख्यायां आँकडापृष्ठानि लोड् भवन्ति, येन cache hit rate न्यूनीकरोति ।

सारांशतः, Buffer Pool MySQL दत्तांशकोशे InnoDB भण्डारणइञ्जिनस्य प्रमुखघटकेषु अन्यतमः अस्ति उचितविन्यासस्य प्रबन्धनस्य च माध्यमेन दत्तांशकोशस्य कार्यक्षमतायां कार्यक्षमतायां च महत्त्वपूर्णतया सुधारः कर्तुं शक्यते

3.MySQL प्रक्रिया

MySQL प्रक्रियायां क्लायन्ट् तथा MySQL सर्वरयोः मध्ये संयोजनात् आरभ्य SQL कथनानां निष्पादनं, अनुकूलनं, आँकडा पठनं, परिणामानां प्रत्यागमनं च यावत् बहुविधाः लिङ्काः सन्ति MySQL प्रक्रियायाः विस्तृतं अवलोकनं निम्नलिखितम् अस्ति ।

1. संयोजनं प्रमाणीकरणं च

  1. संयोजकः (संयोजनप्रबन्धकः): १.

    • यदा क्लायन्ट् (यथा अनुप्रयोगः अथवा आदेशपङ्क्तिसाधनम्) MySQL सर्वरेण सह संयोजनस्य अनुरोधं करोति तदा MySQL इत्यस्य संयोजकः एतेषां संयोजनानुरोधानाम् निबन्धनस्य उत्तरदायी भवति ।

    • संयोजकः क्लायन्ट्-परिचयं अनुमतिं च सत्यापयति, यस्मिन् सामान्यतया उपयोक्तृनाम गुप्तशब्दश्च मेलनं करोति इति जाँचः अन्तर्भवति ।

    • यदि सत्यापनम् सफलं भवति तर्हि संयोजकः अनन्तरं SQL-सञ्चालनानां कृते क्लायन्ट्-कृते एकं थ्रेड् (अथवा सत्रं) आवंटयिष्यति ।

2. प्रश्नसंसाधनम्

  1. Query Cache (Query Cache, नोट्: MySQL 8.0 इत्यस्मिन् एतत् मॉड्यूल् निष्कासितम् अस्ति):

    • SELECT प्रश्नानां कृते MySQL प्रथमं परीक्षते यत् प्रश्नसङ्ग्रहे समानः प्रश्नः तस्य परिणामाः च सन्ति वा इति ।

    • यदि वर्तते तर्हि MySQL प्रत्यक्षतया कैशे मध्ये परिणामान् प्रत्यागमिष्यति, अतः वास्तविकं प्रश्नक्रियां कर्तुं परिहरति ।

    • परन्तु यतः क्वेरी कैशिंग् इत्यनेन दत्तांशस्य असङ्गतिः भवितुम् अर्हति (उदाहरणार्थं, कैश कृता दत्तांशः अन्यैः व्यवहारैः परिवर्तितः भवितुम् अर्हति), MySQL 8.0 इत्यस्मिन् क्वेरी कैशिंग् कार्यं निष्कासितम् अस्ति

  2. पार्सरः : १.

    • क्लायन्ट् द्वारा प्रेषितं SQL स्टेट्मेण्ट् प्रथमं पार्सर् प्रति प्रेष्यते ।

    • पार्सरस्य कार्यं SQL कथनस्य विश्लेषणं, तस्य वाक्यविन्यासः सम्यक् अस्ति वा इति जाँचः, आन्तरिकदत्तांशसंरचनायां (यथा पार्सवृक्षः अथवा वाक्यविन्यासवृक्षः) परिवर्तयितुं च भवति

    • यदि SQL कथने वाक्यविन्यासदोषः अस्ति तर्हि पार्सरः क्लायन्ट् प्रति त्रुटिसूचनाः प्रत्यागमिष्यति ।

  3. पूर्वसंसाधकः : १.

    • केषुचित् MySQL संस्करणेषु अथवा केषुचित् विशिष्टेषु परिदृश्येषु पूर्वसंसाधकपदं भवितुम् अर्हति ।

    • पूर्वसंसाधकः मुख्यतया SQL कथनानां अग्रे संसाधनस्य उत्तरदायी भवति, यथा सारणी वा क्षेत्रं वा अस्ति वा इति जाँचः, SELECT कथने * विस्तारः सारणीयां सर्वेषु स्तम्भेषु इत्यादयः

  4. अनुकूलकः : १.

    • अनुकूलकः SQL कथनानां कृते भिन्नानां निष्पादनयोजनानां मूल्याङ्कनं कृत्वा इष्टतमनिष्पादनयोजनायाः चयनस्य उत्तरदायी भवति ।

    • अनुकूलकः विविधकारकाणां विचारं करोति, यथा उपलब्धसूचकाङ्काः, जॉन् पद्धतेः कार्यक्षमता, प्रश्नस्य व्ययः इत्यादयः ।

    • अनुकूलकः अनुक्रमणिकानां उपयोगः, प्रश्नानां पुनर्क्रमणं, अथवा प्रश्नानां विलयनम् इत्यादीनां कार्याणां माध्यमेन प्रश्नप्रदर्शने महत्त्वपूर्णतया सुधारं कर्तुं शक्नोति ।

  5. निष्पादकः : १.

    • निष्पादकः अनुकूलकेन उत्पन्नस्य निष्पादनयोजनायाः आधारेण वास्तविकप्रश्नक्रियाः करोति ।

    • निष्पादकः दत्तांशसारणीयां दत्तांशं पठितुं भण्डारणइञ्जिनस्य (यथा InnoDB) अन्तरफलकं आह्वयति तथा च क्रमणं, समुच्चयः, छाननं च इत्यादीनि कार्याणि करिष्यति

    • अन्ते निष्पादकः प्रश्नपरिणामान् क्लायन्ट् प्रति प्रत्यागच्छति ।

3. दत्तांशसञ्चयः पुनर्प्राप्तिः च

  • भण्डारण इञ्जिन : १.

    • MySQL बहुविधभण्डारणइञ्जिनं समर्थयति, तथा च प्रत्येकस्य भण्डारणयन्त्रस्य स्वकीयाः विशिष्टाः आँकडाभण्डारण-पुनर्प्राप्तिविधयः सन्ति ।

    • InnoDB MySQL इत्यस्य पूर्वनिर्धारितभण्डारणइञ्जिनेषु अन्यतमम् अस्ति तथा च लेनदेनप्रक्रियाकरणं, पङ्क्तिस्तरस्य तालाबन्दी, विदेशीयकुञ्जी इत्यादीनां उन्नतदत्तांशकोशविशेषतानां समर्थनं करोति ।

    • यदा निष्पादकः भण्डारणयन्त्रस्य अन्तरफलकं आह्वयति तदा भण्डारणयन्त्रस्य दायित्वं भवति यत् सः डिस्कतः दत्तांशं पठति अथवा डिस्कं प्रति दत्तांशं लिखति ।

  • बफर पूलः .

    • InnoDB भण्डारण इञ्जिन् सारणीदत्तांशं संग्रहणार्थं Buffer Pool इत्यस्य उपयोगं करोति तथा च डिस्कं प्रति प्रत्यक्षप्रवेशं न्यूनीकर्तुं अनुक्रमणिकादत्तांशस्य उपयोगं करोति ।

    • बफर पूल् मध्ये आँकडा पृष्ठानि अभिगम आवृत्तिः परिवर्तनस्य स्थितिः च आधारीकृत्य प्रबन्ध्यन्ते येन कैश हिट् दरं प्रश्नप्रदर्शनं च सुदृढं भवति ।

4. व्यवहारप्रक्रियाकरणम्

  • व्यवहारः : १.

    • MySQL लेनदेनप्रक्रियाकरणस्य समर्थनं करोति, यत् समग्ररूपेण बहुविधं कार्यं प्रतिबद्धं वा पुनः रोल कर्तुं वा अनुमतिं ददाति ।

    • लेनदेननिष्पादनस्य समये MySQL आवश्यकं लॉग् सूचनां (यथा redo log and undo log) अभिलेखयिष्यति यत् आँकडा अखण्डतां स्थिरतां च सुनिश्चितं करोति ।

    • यदि लेनदेननिष्पादनं सफलं भवति तर्हि सर्वाणि परिवर्तनानि स्थायिरूपेण दत्तांशकोशे रक्षिताः भविष्यन्ति यदि व्यवहारनिष्पादनं विफलं भवति तर्हि भवन्तः रोल्बैक् क्रियां कर्तुं पूर्ववतवृत्तलेखस्य उपयोगं कर्तुं शक्नुवन्ति तथा च लेनदेनस्य आरम्भात् पूर्वं दत्तांशं राज्ये पुनःस्थापयितुं शक्नुवन्ति

5. सारांशः

MySQL इत्यस्य प्रक्रियायां संयोजनं प्रमाणीकरणं च, प्रश्नसंसाधनं, आँकडाभण्डारणं पुनर्प्राप्तिः च, लेनदेनप्रक्रिया च भवति । एतेषु लिङ्केषु प्रत्येकं चरणं अनुकूलितं कृत्वा MySQL-दत्तांशकोशस्य कार्यक्षमतायां विश्वसनीयतायां च महत्त्वपूर्णं सुधारं कर्तुं शक्यते । तत्सह, MySQL इत्यस्य निष्पादनप्रक्रियायाः अवगमनेन तस्य आन्तरिककार्यतन्त्रं अधिकतया अवगन्तुं अपि सहायकं भविष्यति, तस्मात् दत्तांशकोशस्य उत्तमं डिजाइनं अनुकूलनं च भविष्यति

4.MySQL संयोजन पूल

MySQL इत्यस्य संयोजनपूलः एकः प्रौद्योगिकी अस्ति यस्य उपयोगः आँकडाधारसंयोजनानां प्रबन्धनाय पुनः उपयोगाय च भवति एतत् आँकडाधारसञ्चालनस्य कार्यक्षमतां कार्यक्षमतां च सुधारयितुम्, विशेषतः उच्च-समवर्तीवातावरणेषु MySQL connection pool इत्यस्य विषये विस्तृतं व्याख्यानं निम्नलिखितम् अस्ति ।

1. अवधारणा

MySQL संयोजनपूलः कार्यक्रमस्य आरम्भे पर्याप्तसङ्ख्यां दत्तांशकोशसंयोजनानि स्थापयति, तथा च एतानि संयोजनानि एकरूपेण प्रबन्धयति यत् संयोजनपूलं निर्माति । यदा कार्यक्रमस्य दत्तांशकोशं अभिगन्तुं आवश्यकं भवति तदा सः गतिशीलरूपेण संयोजनकुण्डात् संयोजनाय आवेदनं करिष्यति, तथा च उपयोगानन्तरं संयोजनपुलं प्रति संयोजनं प्रत्यागमिष्यति, प्रत्येकस्य कार्यस्य कृते संयोजनं पुनः निर्माय बन्दं कर्तुं न प्रवृत्तः

2. संयोजनसमूहस्य उपयोगः किमर्थं भवति ?

  1. संसाधनस्य उपभोगं न्यूनीकरोतु : दत्तांशकोशसंयोजनस्य निर्माणं बन्दीकरणं च तुल्यकालिकरूपेण समयग्राही प्रक्रिया भवति, यत्र TCP संयोजनस्य त्रिपक्षीयहस्तप्रहारः चतुर्मार्गीयतरङ्गः च, तथैव दत्तांशकोशप्रमाणीकरणप्रक्रिया च भवति संयोजनसङ्ग्रहस्य माध्यमेन एतेषां ओवरहेड्स् न्यूनीकर्तुं विद्यमानसंयोजनानां पुनः उपयोगः कर्तुं शक्यते ।

  2. कार्यप्रदर्शने सुधारं कुर्वन्तु : उच्च-समवर्ती परिदृश्ये यदि प्रत्येकस्य अनुरोधस्य कृते नूतनं दत्तांशकोशसंयोजनं निर्मितं भवति तर्हि सर्वरस्य कार्यक्षमता महत्त्वपूर्णतया पतति । संयोजनपूलस्य उपयोगेन दत्तांशकोशस्य प्रतिक्रियावेगः, थ्रूपुट् च महत्त्वपूर्णतया सुधारः कर्तुं शक्यते ।

  3. संयोजनस्य लीकं परिहरन्तु : संयोजनपूलस्य उपयोगं विना यदि कार्यक्रमः संयोजनं बन्दं करोति तदा अपवादः भवति तर्हि संयोजनस्य लीकेजं जनयितुं शक्नोति अर्थात् संयोजनं सम्यक् न बन्दं न भवति तथा च प्रणालीसंसाधनं गृह्णाति संयोजनकुण्डः समयसमाप्तिपुनःप्रयोगतन्त्रस्य माध्यमेन एतां स्थितिं परिहरितुं शक्नोति ।

3. संयोजनपूलस्य कार्यसिद्धान्तः

  1. आरम्भीकरणम्: यदा कार्यक्रमः आरभ्यते तदा संयोजनपूलः विन्यासानुसारं निश्चितसङ्ख्यायां दत्तांशकोशसंयोजनानि निर्मास्यति, एतानि संयोजनानि च बैकअपार्थं संयोजनपूले स्थापयति

  2. संयोजनार्थं आवेदनं कुर्वन्तु : यदा कार्यक्रमस्य दत्तांशकोशं प्राप्तुं आवश्यकता भवति तदा सः संयोजनकुण्डात् संयोजनाय आवेदनं करिष्यति । यदि संयोजनकुले निष्क्रियसंयोजनं भवति तर्हि तत् प्रत्यक्षतया कार्यक्रमाय उपयोगाय प्रत्यागमिष्यति यदि निष्क्रियसंयोजनं नास्ति तर्हि विन्यासानुसारं निश्चितकालं प्रतीक्षते अथवा त्रुटिं प्रत्यागमिष्यति

  3. संयोजनस्य उपयोगं कुर्वन्तु: कार्यक्रमः दत्तांशकोशक्रियाः कर्तुं अनुरोधितसंयोजनस्य उपयोगं करोति ।

  4. return connection : ऑपरेशनस्य समाप्तेः अनन्तरं प्रोग्राम् कनेक्शन् पूल् प्रति संयोजनं प्रत्यागच्छति । संयोजनपुलः संयोजने कतिपयानि जाँचानि करिष्यति यदि संयोजनं अद्यापि वैधं भवति तर्हि यदि संयोजनस्य अवधिः समाप्तः अस्ति तर्हि तत् बन्दं कृत्वा संयोजनकुण्डात् निष्कासितम् भविष्यति

  5. संयोजनकुण्डं बन्दं कुर्वन्तु: यदा कार्यक्रमः समाप्तः भवति तदा संयोजनपूले सर्वे संयोजनाः बन्दाः भविष्यन्ति तथा च कब्जाकृताः प्रणालीसंसाधनाः मुक्ताः भविष्यन्ति ।

4. संयोजनपूलप्रदाता

मार्केट् मध्ये बहवः MySQL संयोजनपूलप्रदातारः सन्ति, येषु अधिकलोकप्रियाः सन्ति:

  • DBCP : एतत् अपाचे परियोजनायाः अन्तर्गतं मुक्तस्रोतसंयोजनपूलस्य कार्यान्वयनम् अस्ति, तथा च एषः संयोजनपूलः अस्ति यः Tomcat इत्यनेन सह आगच्छति । अन्येभ्यः संयोजनकुण्डेभ्यः द्रुततरं भवति, परन्तु पर्याप्तं स्थिरं न भवेत् ।

  • C3P0 : इदं मुक्तस्रोतस्य JDBC संयोजनपूलः अस्ति, यः आँकडास्रोतः JNDI बन्धनं च कार्यान्वयति, तथा च JDBC3 मानकं JDBC2 मानकविस्तारं च समर्थयति । C3P0 इत्यस्य गतिः तुल्यकालिकरूपेण मन्दः परन्तु अतीव स्थिरः अस्ति ।

  • द्रुइड् (Druid): इदं अलीबाबा द्वारा प्रदत्तं मुक्तस्रोतसंयोजनपूलम् अस्ति यत् एतत् DBCP तथा C3P0 इत्येतयोः लाभयोः संयोजनं करोति तथा च शक्तिशाली निगरानीयताविस्तारकार्यं च प्रदाति । Druid सम्प्रति सर्वाधिकं प्रयुक्तेषु MySQL संयोजनपूलेषु अन्यतमम् अस्ति ।

5. संयोजनपूलविन्यासः

संयोजनपूलस्य विन्यासे प्रायः निम्नलिखितपक्षाः समाविष्टाः सन्ति ।

  • अधिकतमं संयोजनानां संख्या: अधिकतमसंयोजनसङ्ख्या या संयोजनकुण्डः प्रबन्धयितुं शक्नोति।

  • न्यूनतमसंयोजनानां संख्या: संयोजनपूलस्य आरम्भे निर्मितानाम् आरम्भिकसङ्ख्या ।

  • संयोजनसमयसमाप्तिम् प्राप्नुवन्तु: संयोजनकुण्डात् संयोजनं प्राप्य प्रतीक्षायाः अधिकतमः समयः ।

  • संयोजनसत्यापनम्: संयोजनं प्राप्तुं पूर्वं वा संयोजनं प्रत्यागत्य वा संयोजनस्य वैधतां सत्यापयन्तु।

  • संयोजनपुनःप्रयोगस्य रणनीतिः: तेषां निष्क्रियसमयस्य उपयोगसमयस्य च आधारेण संयोजनानि पुनः प्रयोजयन्तु।

6. संयोजनपूलस्य सूत्रकुण्डस्य च सम्बन्धः

कनेक्शन् पूलिंग्, थ्रेड् पूलिंग् च द्वौ भिन्नौ संसाधनपूलिंग् प्रौद्योगिकीद्वयम् अस्ति, परन्तु तयोः मध्ये एकः निश्चितः सम्बन्धः अस्ति । थ्रेड् पूल् मुख्यतया थ्रेड् संसाधनानाम् प्रबन्धनार्थं उपयुज्यते, यदा तु संयोजनपुलस्य उपयोगः दत्तांशकोशसंयोजनसम्पदां प्रबन्धनार्थं भवति । यदा थ्रेड् पूल् मध्ये कस्यचित् थ्रेड् इत्यस्य दत्तांशकोशक्रियायाः आवश्यकता भवति तदा सः संयोजनपूलतः संयोजनाय आवेदनं करिष्यति तदा संयोजनं संयोजनपूले प्रत्यागमिष्यति; एषः सम्बन्धः कुशलं संसाधन-उपयोगं सरल-प्रबन्धनं च प्राप्तुं साहाय्यं करोति ।

सारांशतः, MySQL संयोजनपूलः एकः महत्त्वपूर्णः आँकडाधारसंयोजनप्रबन्धनप्रौद्योगिकी अस्ति, एतत् संयोजनानां पुनः उपयोगं कृत्वा, संसाधनानाम् उपभोगं न्यूनीकरोति, कार्यक्षमतां च सुधारयित्वा आँकडाधारसञ्चालनानां कृते सशक्तं समर्थनं प्रदाति वास्तविक-अनुप्रयोगेषु परियोजनायाः विशिष्ट-आवश्यकतानां परिदृश्यानां च अनुसारं समुचितं संयोजन-पूल-प्रदाता विन्यास-मापदण्डं च चयनं कर्तुं शक्यते ।

MySQL लॉग्स् इत्यनेन सह सम्बद्धाः साक्षात्कारप्रश्नाः अनेके पक्षाः कवरं कर्तुं शक्नुवन्ति, यत्र प्रकारः, भूमिका, विन्यासः, लॉग्स् इत्यस्य अनुकूलनं, तथा च आँकडापुनर्प्राप्ति, आँकडाप्रतिकृतिः इत्यादिषु लॉग्स् इत्यस्य अनुप्रयोगः च सन्ति निम्नलिखितम् केचन सामान्याः MySQL log-सम्बद्धाः साक्षात्कारप्रश्नाः तेषां विस्तृतानि उत्तराणि च सन्ति:

5. MySQL मध्ये सामान्यानि लॉग्स् कानि सन्ति? तेषां स्वस्वकार्यं किम् ?

MySQL मध्ये सामान्यलॉग्स् निम्नलिखितम् अन्तर्भवन्ति ।

  • त्रुटिलेखः : MySQL सर्वरस्य आरम्भे, चालने वा स्थगिते वा त्रुटिसूचनाः अभिलेखयन्तु, तथैव कस्यापि महत्त्वपूर्णायाः त्रुटिसूचनाः अपि अभिलेखयन्तु । एतेन समस्यायाः निदानं भवति ।

  • प्रश्नवृत्तान्तः (सामान्यवृत्तलेखः) २. : MySQL सर्वरेण प्राप्तं प्रत्येकं क्लायन्ट् अनुरोधं प्रतिक्रियां च अभिलेखयन्तु, यत्र उपयोक्तृप्रवेशक्रियाकलापाः, निष्पादिताः SQL कथनानि इत्यादयः सन्ति । सामान्यतया लेखापरीक्षायै अथवा त्रुटिनिवारणाय उपयुज्यते ।

  • मन्द प्रश्न लॉग : येषां SQL कथनानां निष्पादनसमयः सीमां अतिक्रमति, तथा च एतेषां कथनानां निष्पादनसमयः, अभिगताः सारणीः, प्रयुक्ताः अनुक्रमणिकाः अन्यसूचनाः च अभिलेखयन्तु कार्यप्रदर्शनस्य ट्यूनिङ्गस्य तथा प्रश्नानुकूलनस्य कृते उपयुज्यते ।

  • द्विचक्रिका लॉग (संक्षेपेण द्विलेखः) २.: सर्वाणि कथनानि अभिलेखयति ये आँकडाधारदत्तांशं परिवर्तयन्ति (SELECT तथा SHOW इत्यादीनि कथनानि विहाय), मुख्यतया प्रतिकृतिं आँकडापुनर्प्राप्त्यर्थं च उपयुज्यन्ते ।

  • Redo Log: InnoDB भण्डारण इञ्जिन् मध्ये लेनदेनस्य स्थायित्वं सुनिश्चित्य तस्य उपयोगः भवति यद्यपि सिस्टम् क्रैश भवति तथापि redo logs इत्यस्य माध्यमेन data पुनः प्राप्तुं शक्यते ।

  • Undo Log: InnoDB भण्डारण इञ्जिन् मध्ये, लेनदेनस्य आरम्भात् पूर्वं दत्तांशस्थितिं अभिलेखयितुं तस्य उपयोगः भवति, येन यदा लेनदेनं विफलं भवति अथवा पुनः रोल भवति तदा लेनदेनस्य आरम्भात् पूर्वं दत्तांशं पुनः स्थापयितुं शक्यते

  • रिले लॉग: MySQL प्रतिकृति आर्किटेक्चर मध्ये, स्लेव सर्वरे रिले लॉग् इत्यस्य उपयोगः मुख्यसर्वरतः प्राप्तां द्विचक्रीय लॉग् सामग्रीं संग्रहीतुं भवति ।

6. मन्दप्रश्नवृत्तलेखः कथं सक्षमः विन्यस्तः च?

मन्दप्रश्नवृत्तलेखं MySQL विन्याससञ्चिकायाः ​​माध्यमेन (यथा my.cnf अथवा my.ini) उद्घाट्य विन्यस्तं कर्तुं शक्यते, अथवा SQL आदेशानां माध्यमेन गतिशीलरूपेण सेट् कर्तुं शक्यते ।

  • विन्याससञ्चिकाविधिः : १.

    • MySQL विन्याससञ्चिकायां निम्नलिखितमापदण्डान् योजयन्तु अथवा परिवर्तयन्तु:

      [mysqld]  
      slow_query_log = 1  
      slow_query_log_file = /path/to/your/slow-query.log  
      long_query_time = 2

      इत्यस्मिन्‌,

      slow_query_log

      मन्दप्रश्नवृत्तान्तान् सक्षमीकरणाय उपयुज्यते,

      slow_query_log_file

      मन्दप्रश्नवृत्तसञ्चिकायाः ​​मार्गं निर्दिशन्तु,

      long_query_time

      मन्दप्रश्नवृत्ते अभिलेखयितुम् सेकण्ड्सङ्ख्यां अतिक्रम्य SQL कथनानां निष्पादनसमयं सेट् कुर्वन्तु ।

    • विन्याससञ्चिकां परिवर्तयित्वा, भवद्भिः MySQL सेवा पुनः आरभ्यत इति आवश्यकम् ।

  • SQL आदेशविधिः : १.

    • मन्दप्रश्नवृत्तलेखं SQL आदेशानां माध्यमेन गतिशीलरूपेण सक्षमं कर्तुं शक्यते, परन्तु...slow_query_log_fileतथाlong_query_timeविन्याससञ्चिकाद्वारा मापदण्डाः सेट् कर्तव्याः भवेयुः, यतः गतिशीलसेटिंग्स् समर्थिताः न भवेयुः अथवा कार्यं न कर्तुं शक्नुवन्ति ।

    • मन्दप्रश्नवृत्तलेखं सक्षमं कुर्वन्तु:

      sql复制代码
      ​
      SET GLOBAL slow_query_log = 'ON';
    • ध्यानं कुर्वन्तु यत् SQL आदेशानां उपयोगेन गतिशीलरूपेण उद्घाटितः मन्दप्रश्नवृत्तलेखः प्रणालीयाः पुनः आरम्भस्य अनन्तरं अमान्यः भवितुम् अर्हति, अतः विन्याससञ्चिकायाः ​​माध्यमेन सेट् कर्तुं अनुशंसितम् ।

7. द्विचक्रीय-लॉग् (Binlog) कृते कति प्रारूपाः सन्ति ? तेषु किं भेदः ?

द्विचक्रीय-लॉग्स् (Binlog) इत्यस्य त्रयः प्रारूपाः सन्ति ।

  • वक्तव्यम्‌ : SQL कथन-आधारित प्रतिकृति (कथन-आधारित प्रतिकृति, SBR)। अस्मिन् प्रारूपे MySQL निष्पादितानि SQL कथनानि binlog मध्ये अभिलेखयिष्यति । अस्य लाभः अस्ति यत् लॉग्-आयतनं लघु भवति, परन्तु तस्य काश्चन प्रतिकृति-समस्याः सन्ति, यथा कार्याणि, ट्रिगर्स्, संगृहीत-प्रक्रियाः इत्यादयः ये मास्टर-स्लेव्-दत्तांशेषु असङ्गतिं जनयितुं शक्नुवन्ति

  • पंक्ति : पङ्क्ति-आधारितप्रतिकृतिः (RBR)। अस्मिन् प्रारूपे MySQL परिवर्तितानां पङ्क्तीनां दत्तांशपरिवर्तनानि अभिलेखयिष्यति । अस्य लाभः अस्ति यत् केचन प्रतिकृतिसमस्याः परिहरन्ति, परन्तु लॉग् आयतनं बृहत् भवितुम् अर्हति ।

  • MIXED इति : मिश्रित-आधारित प्रतिकृति (MBR)। MySQL स्वयमेव परिस्थित्यानुसारं STATEMENT अथवा ROW प्रारूपस्य उपयोगं कर्तुं चयनं करिष्यति । मिश्रितविधिः पूर्वनिर्धारितः मोडः अस्ति, उभयलोकस्य उत्तमस्य संयोजनाय च निर्मितः अस्ति ।

8. Redo Log व्यवहारस्य स्थायित्वं कथं सुनिश्चितं करोति?

Redo Log InnoDB भण्डारणइञ्जिन् मध्ये लेनदेनस्य स्थायित्वं निम्नलिखितरीत्या सुनिश्चितं करोति ।

  • यदा व्यवहारः प्रस्तौति तदा InnoDB इञ्जिन् प्रथमं व्यवहारस्य redo log इत्येतत् स्मृतौ redo log buffer मध्ये cache करिष्यति, तथा च तत्सहकालं स्मृतौ तत्सम्बद्धं data page अद्यतनं करिष्यति

  • ततः समुचितसमये redo log buffer मध्ये redo log इत्येतत् डिस्क मध्ये redo log file इत्यत्र लिखन्तु । इयं प्रक्रिया अतुल्यकालिका अस्ति, परन्तु डिस्कब्रशिंग् इत्यस्य समयः आवृत्तिः च मापदण्डान् विन्यस्य नियन्त्रयितुं शक्यते ।

  • यदि प्रणाली-दुर्घटना भवति तर्हि InnoDB-इञ्जिनं प्रारम्भे redo log सञ्चिकां जाँचयिष्यति तथा च तत्रत्यानां अभिलेखानां आधारेण अद्यतनतया प्रस्तुतेन लेनदेनेन कृतानि परिवर्तनानि पुनः स्थापयति, तस्मात् आँकडानां स्थायित्वं सुनिश्चितं भविष्यति

9. MySQL मध्ये log files कथं द्रष्टुं विलोपयितुं च संक्षेपेण वर्णयन्तु।

लॉग् सञ्चिकाः पश्यन्तु

  • त्रुटिलेखः: सामान्यतया MySQL विन्याससञ्चिकां दृष्ट्वा एतत् कर्तुं शक्यतेlog_errorparameter त्रुटिवृत्तसञ्चिकां ज्ञातुं सञ्चिकामार्गं निर्दिष्टुं तथा च पाठसम्पादकस्य अथवा आदेशपङ्क्तिसाधनस्य उपयोगं कर्तुं यथाtailcatइत्यादि) तस्य सामग्रीं द्रष्टुं ।