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

MySQL में INT कॉलम पर इंडेक्स बनाना: कब फायदेमंद, कब नहीं?

INT कॉलम पर इंडेक्स: प्रदर्शन विश्लेषण

INT डेटा टाइप के कॉलम पर इंडेक्स बनाना बड़े टेबल पर क्वेरी प्रदर्शन में नाटकीय सुधार कर सकता है, लेकिन छोटे टेबल पर यह ओवरहेड ही बढ़ाता है।

टेबल बनाना (इंडेक्स सहित)

CREATE TABLE indexOnIntColumnDemo (
    UserId INT,
    UserName VARCHAR(20),
    UserAge INT,
    INDEX (UserId)
);

इंडेक्स सत्यापन

DESC indexOnIntColumnDemo;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| UserId   | int(11)     | YES  | MUL | NULL    |       |
| UserName | varchar(20) | YES  |     | NULL    |       |
| UserAge  | int(11)     | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+

Key कॉलम में MUL (मल्टीपल/नॉन-यूनिक इंडेक्स) दर्शाता है कि इंडेक्स बना है।

डेटा डालना और क्वेरी

INSERT INTO indexOnIntColumnDemo VALUES
(1001, 'John', 23), (1002, 'Sam', 25), (1003, 'Carol', 22), (1004, 'Mike', 26);

SELECT * FROM indexOnIntColumnDemo WHERE UserId = 1004;

कब इंडेक्स फायदेमंद है

  • टेबल में लाखों पंक्तियां हों।
  • क्वेरी में WHERE UserId = ..., JOIN ... ON UserId, ORDER BY UserId जैसे फ़िल्टर हों।
  • चयनात्मकता (सेलेक्टिविटी) उच्च हो (कम डुप्लिकेट मान)।

कब इंडेक्स नुकसानदायक है

  • टेबल छोटा हो (< 1000 पंक्तियां) — फुल टेबल स्कैन तेज़ होता है।
  • कॉलम में बहुत डुप्लिकेट मान हों (कम चयनात्मकता)।
  • बार-बार INSERT/UPDATE/DELETE होते हों — इंडेक्स रखरखाव ओवरहेड बढ़ाता है।

बेस्ट प्रैक्टिस

  • EXPLAIN SELECT ... से क्वेरी प्लान जांचें (type: ref या range अच्छा है, ALL बुरा)।
  • कम्पोजिट इंडेक्स पर विचार करें यदि एकाधिक कॉलम एक साथ फ़िल्टर होते हैं।
  • अनुपयोगी इंडेक्स DROP INDEX से हटाएं।
  1. - MySQL में एक ही क्वेरी में कई कॉलम के डेटा टाइप को कैसे बदलें?

    MySQL में एक साथ कई कॉलम के डेटा टाइप बदलना MySQL में एक ही ALTER TABLE स्टेटमेंट का उपयोग करके आप एक साथ कई कॉलम के डेटा टाइप को संशोधित कर सकते हैं। इसके लिए सिंटैक्स निम्नलिखित है: ALTER TABLE yourTableName MODIFY COLUMN yourColumnName1 yourDataType1, MODIFY COLUMN yourColumnName2 yourDataType2

  1. - MySQL में BLOB टाइप कॉलम की लंबाई कैसे प्राप्त करें?

    MySQL LENGTH() फंक्शन: BLOB कॉलम की बाइट लंबाई प्राप्त करना LENGTH() फंक्शन स्ट्रिंग या बाइनरी डेटा की लंबाई बाइट्स में लौटाता है। BLOB टाइप कॉलम के लिए यह स्टोर किए गए डेटा का वास्तविक बाइट आकार देता है। उदाहरण: BLOB कॉलम की लंबाई टेबल बनाएं: CREATE TABLE DemoTable (Title BLOB); INSERT INTO DemoTa

  1. - MySQL में UPDATE का उपयोग करके कॉलम मान रिप्लेस करना

    WHERE क्लॉज के साथ विशिष्ट पंक्ति का कॉलम मान अपडेट करना किसी विशिष्ट पंक्ति के कॉलम मान को बदलने के लिए UPDATE के साथ SET और WHERE का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> CREATE TABLE DemoTable ( StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Score INT ); रिकॉर्ड्स इन्सर्ट