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

MySQL में कॉलम के अधिकतम मान प्राप्त करने का सबसे तेज़ तरीका: MAX() vs ORDER BY DESC LIMIT 1

MySQL में MAX() vs ORDER BY DESC LIMIT 1: प्रदर्शन तुलना

कॉलम का अधिकतम मान प्राप्त करने के दो सामान्य तरीके हैं, लेकिन MAX() फंक्शन ORDER BY ... DESC LIMIT 1 से काफी तेज होता है।

दोनों तरीके

CREATE TABLE DemoTable (Number INT);
INSERT INTO DemoTable VALUES (78), (87), (89), (69), (87);

MAX() क्वेरी

SELECT MAX(Number) FROM DemoTable;

परिणाम: 89 (0.06 सेकंड)

क्यों MAX() तेज है?

पहलूMAX()ORDER BY DESC LIMIT 1
कामइंडेक्स के अंतिम मान को सीधे पढ़ता हैसभी मान पढ़ता है, सॉर्ट करता है, फिर पहला लेता है
जटिलता (इंडेक्स पर)O(1) या O(log n)O(n log n) सॉर्ट के कारण
इंडेक्स उपयोगइंडेक्स-ओनली स्कैनफाइलसॉर्ट या इंडेक्स स्कैन

कब ORDER BY उपयोगी है?

  • अधिकतम मान वाली पूरी पंक्ति चाहिए: SELECT * FROM t ORDER BY col DESC LIMIT 1
  • एकाधिक कॉलम द्वारा सॉर्ट करके टाई-ब्रेक करना हो
  • कोई इंडेक्स नहीं है (दोनों फुल स्कैन करेंगे)

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

  • केवल अधिकतम मान चाहिए → MAX(col)
  • अधिकतम मान वाली पंक्ति चाहिए → ORDER BY col DESC LIMIT 1
  • कॉलम पर इंडेक्स बनाएं: CREATE INDEX idx_col ON table(col)
  1. - MySQL में टेबल A की तुलना में टेबल B में नहीं होने पर टेबल C में डेटा डालें

    समाधान टेबल A और B पर LEFT JOIN का उपयोग करें, जहां B में मेल नहीं खाता वहां के रिकॉर्ड टेबल C में डालें। उदाहरण टेबल A (demo20): INSERT INTO demo20 VALUES (100,John), (101,Bob), (102,Mike), (103,Carol); टेबल B (demo21): INSERT INTO demo21 VALUES (100,Sam), (101,Adam), (133,Bob), (145,David); ट

  1. - MySQL में किसी कॉलम में अधिकतम मान खोजना

    किसी कॉलम में अधिकतम मान खोजने के लिए MAX(columnName) का उपयोग करना होगा। लेकिन, पहले, हम MySQL में डेटाबेस और टेबल के बारे में समझेंगे। MySQL इंस्टॉल करने से पहले, यह निर्धारित करना महत्वपूर्ण है कि किस संस्करण और किस डिस्ट्रीब्यूशन फॉर्मेट (यह बाइनरी फाइल या सोर्स फाइलों से हो सकता है) का उपयोग

  1. - MySQL कॉलम से अधिकतम मान प्राप्त करना

    परिचय MySQL में किसी कॉलम का अधिकतम मान प्राप्त करने के लिए MAX() एग्रीगेट फंक्शन या ORDER BY ... DESC LIMIT 1 का उपयोग किया जा सकता है। टेबल निर्माण और डेटा सम्मिलन insert into DemoTable values(58); Query OK, 1 row affected (0.25 sec) सभी रिकॉर्ड प्रदर्शित करना select * from DemoTable; +-------