Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL इंडेक्स के लिए सर्वोत्तम अभ्यास

डेटाबेस इंडेक्स डेटा संरचना है जो टेबल ऑपरेशन की गति बढ़ाती है। सही इंडेक्सिंग रणनीति प्रदर्शन के लिए महत्वपूर्ण है।

सर्वोत्तम अभ्यास

1. सही कॉलम इंडेक्स करें

  • WHERE, JOIN, ORDER BY, GROUP BY में उपयोग होने वाले कॉलम
  • उच्च कार्डिनैलिटी (अद्वितीय मान अधिक) वाले कॉलम
  • विदेशी कुंजी कॉलम (JOIN प्रदर्शन के लिए)

2. कम्पोजिट इंडेक्स क्रम मायने रखता है

-- WHERE a=1 AND b=2 AND c=3 के लिए
CREATE INDEX idx_abc ON t(a, b, c);  -- सही क्रम

-- यह क्वेरी भी उपयोग कर सकती है:
-- WHERE a=1
-- WHERE a=1 AND b=2
-- लेकिन नहीं: WHERE b=2 (a के बिना)

3. इंडेक्स के नुकसान समझें

  • INSERT/UPDATE/DELETE धीमे होते हैं - इंडेक्स भी अपडेट होता है
  • डिस्क स्पेस - प्रत्येक इंडेक्स अतिरिक्त स्टोरेज लेता है
  • बहुत अधिक इंडेक्स - ऑप्टिमाइज़र को भ्रमित कर सकते हैं

4. कवरिंग इंडेक्स उपयोग करें

-- यदि क्वेरी केवल इंडेक्स कॉलम एक्सेस करती है
SELECT id, name FROM users WHERE email = 'x@y.com';
-- इंडेक्स: (email, id, name) -- "कवरिंग इंडेक्स", टेबल एक्सेस नहीं

5. अनावश्यक इंडेक्स हटाएं

-- अप्रयुक्त इंडेक्स ढूंढें (MySQL 5.7+)
SELECT * FROM sys.schema_unused_indexes;

उदाहरण: इंडेक्स बनाना

mysql> CREATE TABLE IndexingDemo (Id INT, Name VARCHAR(100));
mysql> CREATE INDEX indexName ON IndexingDemo(Name);
Query OK, 0 rows affected (0.75 sec)

इंडेक्स प्रकार

  • B-Tree (डिफ़ॉल्ट): समानता, रेंज, सॉर्टिंग, ग्रुपिंग
  • Hash: केवल समानता (=, IN), MEMORY इंजन
  • Fulltext: टेक्स्ट खोज (MyISAM, InnoDB 5.6+)
  • Spatial: ज्यामितीय डेटा

निगरानी और रखरखाव

-- इंडेक्स उपयोग सांख्यिकी
SELECT * FROM sys.schema_index_statistics WHERE table_name = 'mytable';

-- फ्रैगमेंटेशन जांचें
ANALYZE TABLE mytable;
OPTIMIZE TABLE mytable;  -- इंडेक्स पुनर्निर्माण
  1. MySQL वर्कबेंच का उपयोग करके स्टोर्ड प्रोसीजर कैसे बनाएं? MySQL वर्कबेंच का उपयोग करके स्टोर्ड प्रोसीजर कैसे बनाएं?

    आइए पहले एक स्टोर्ड प्रोसीजर बनाते हैं। MySQL वर्कबेंच का उपयोग करके स्टोर्ड प्रोसीजर बनाने का क्वेरी: use business; DELIMITER // DROP PROCEDURE IF EXISTS SP_GETMESSAGE; CREATE PROCEDURE SP_GETMESSAGE() BEGIN DECLARE MESSAGE VARCHAR(100); SET MESSAGE=HELLO; SELECT CONCAT(MESSAGE, ,MYSQL!!!!); END //

  1. - पायथन में लूप उपयोग करने के लिए सर्वोत्तम अभ्यास क्या हैं?

    यह एक भाषा-अज्ञेय प्रश्न है। लूप लगभग हर भाषा में होते हैं और वही सिद्धांत हर जगह लागू होते हैं। आपको यह एहसास होना चाहिए कि लूप ऑप्टिमाइज़ेशन के मामले में कंपाइलर अधिकांश भारी काम करते हैं, लेकिन एक प्रोग्रामर के रूप में आपको भी अपने लूप को ऑप्टिमाइज़ रखने की आवश्यकता है। यह महसूस करना महत्वपूर्ण

  1. विंडोज़ 10 के लिए मैजिकडिस्क के शीर्ष 10 विश्वसनीय विकल्प विंडोज़ 10 के लिए मैजिकडिस्क के शीर्ष 10 विश्वसनीय विकल्प

    मैजिकडिस्क बंद होने के साथ, लोग सीडी/डीवीडी को जलाए बिना सीडी/डीवीडी छवियों का उपयोग करने के लिए एक विकल्प की तलाश कर रहे हैं। यदि आप भी मैजिकडिस्क विकल्पों की तलाश कर रहे हैं, तो आप सही जगह पर हैं। इस पोस्ट में, हम विंडोज़ 10 के लिए शीर्ष 10 सर्वश्रेष्ठ मैजिकडिस्क विकल्पों के बारे में बात करेंगे।