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

MySQL क्वेरी के लिए कुल पंक्ति संख्या प्राप्त करने का सबसे तेज़ तरीका क्या है?

MySQL क्वेरी में कुल पंक्ति संख्या प्राप्त करने के लिए सबक्वेरी के साथ COUNT(*) एग्रीगेट फ़ंक्शन का उपयोग करना एक कुशल तरीका है। यह प्रत्येक पंक्ति के साथ कुल संख्या दिखाता है बिना अलग क्वेरी चलाए।

उदाहरण तालिका बनाना और डेटा डालना

mysql> CREATE TABLE DemoTable (
    StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentFirstName VARCHAR(20),
    StudentAge INT
);

mysql> INSERT INTO DemoTable (StudentFirstName, StudentAge) VALUES 
    -> ('John', 23), ('Larry', 21), ('Johnny', 23), ('Chris', 21), 
    -> ('David', 23), ('James', 21), ('Jace', 24), ('Mike', 21), 
    -> ('Robert', 25), ('Mike', 22);

सबक्वेरी के साथ कुल पंक्ति संख्या प्राप्त करना

mysql> SELECT StudentFirstName, 
    -> (SELECT COUNT(*) FROM DemoTable) AS Total_Count 
    -> FROM DemoTable LIMIT 10;

आउटपुट:

+------------------+-------------+
| StudentFirstName | Total_Count |
+------------------+-------------+
| John             | 10          |
| Larry            | 10          |
| Johnny           | 10          |
| Chris            | 10          |
| David            | 10          |
| James            | 10          |
| Jace             | 10          |
| Mike             | 10          |
| Robert           | 10          |
| Mike             | 10          |
+------------------+-------------+

व्याख्या: सबक्वेरी (SELECT COUNT(*) FROM DemoTable) एक बार निष्पादित होती है और इसका परिणाम (10) मुख्य क्वेरी की प्रत्येक पंक्ति के लिए Total_Count कॉलम के रूप में दोहराया जाता है।

प्रदर्शन नोट: MySQL ऑप्टिमाइज़र अक्सर इस सबक्वेरी को कैश कर लेता है क्योंकि यह मुख्य क्वेरी के कॉलम पर निर्भर नहीं करती (अनकोरिलेटेड सबक्वेरी)। बड़े डेटासेट के लिए, SQL_CALC_FOUND_ROWS और FOUND_ROWS() का उपयोग करना या अलग COUNT(*) क्वेरी चलाना कभी-कभी अधिक कुशल हो सकता है, विशेष रूप से जब LIMIT का उपयोग किया जाता है।

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

    MySQL में MAX() vs ORDER BY DESC LIMIT 1: प्रदर्शन तुलना कॉलम का अधिकतम मान प्राप्त करने के दो सामान्य तरीके हैं, लेकिन MAX() फंक्शन ORDER BY ... DESC LIMIT 1 से काफी तेज होता है। दोनों तरीके -- तरीका 1: MAX() फंक्शन (अनुशंसित) SELECT MAX(yourColumnName) FROM yourTableName; -- तरीका 2: ORDER BY DE

  1. - MySQL में UNION ALL से विभिन्न टेबलों की गिनती का योग एकल क्वेरी में प्राप्त करें

    MySQL में कई टेबलों की पंक्ति गिनती का योग एकल क्वेरी में प्राप्त करने के लिए UNION ALL के साथ सबक्वेरी और बाहरी SUM() का उपयोग करें। यह प्रत्येक टेबल को अलग से गिनने और फिर परिणाम जोड़ने से अधिक कुशल है। सिंटैक्स SELECT SUM(AllCount) AS Total_Count FROM ( (SELECT COUNT(*) AS AllCount FROM tabl

  1. - विशिष्ट कॉलम मानों के लिए एकल MySQL क्वेरी में एकाधिक काउंट प्राप्त करें

    इसके लिए, आप विशिष्ट कॉलम के लिए पैरामीटर मान के साथ एग्रीगेट फंक्शन SUM() का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1790 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(20), Score int ); Query OK, 0 rows affected (0.94 sec) इन्सर्ट कमा