LIMIT क्लॉज से परिणाम सीमित करें
बड़े परिणाम सेट से केवल आवश्यक पंक्तियाँ प्राप्त करने के लिए LIMIT क्लॉज का उपयोग करें। यह पेजिनेशन और प्रदर्शन के लिए आवश्यक है।
सिंटैक्स
-- पहले N पंक्तियाँ
SELECT * FROM table LIMIT N;
-- ऑफसेट के साथ (पेजिनेशन)
SELECT * FROM table LIMIT offset, count;
-- या
SELECT * FROM table LIMIT count OFFSET offset;
टेबल और डेटा
mysql> CREATE TABLE DemoTable (Id INT, Name VARCHAR(20));
mysql> INSERT INTO DemoTable VALUES(10,'John'), (11,'Chris'), (12,'David'), (13,'Carol'), (14,'Mike'), (15,'Sam'), (16,'Robert');
सभी रिकॉर्ड
mysql> SELECT * FROM DemoTable;
+------+--------+
| Id | Name |
+------+--------+
| 10 | John |
| 11 | Chris |
| 12 | David |
| 13 | Carol |
| 14 | Mike |
| 15 | Sam |
| 16 | Robert |
+------+--------+
पहले 2 छोड़कर अगले 4 पंक्तियाँ (पेज 2, पेज आकार 4)
mysql> SELECT * FROM DemoTable LIMIT 2, 4;
+------+-------+
| Id | Name |
+------+-------+
| 12 | David |
| 13 | Carol |
| 14 | Mike |
| 15 | Sam |
+------+-------+
LIMIT पैरामीटर
LIMIT 5- पहली 5 पंक्तियाँLIMIT 2, 4- 3री पंक्ति से शुरू करके 4 पंक्तियाँ (ऑफसेट 2, काउंट 4)LIMIT 4 OFFSET 2- समान, अधिक पठनीय सिंटैक्स
ORDER BY के साथ उपयोग (आवश्यक)
-- स्थिर परिणाम के लिए हमेशा ORDER BY उपयोग करें
SELECT * FROM DemoTable ORDER BY Id LIMIT 10 OFFSET 20;
बड़े ऑफसेट की प्रदर्शन समस्या
बड़े ऑफसेट (जैसे LIMIT 1000000, 10) धीमे होते हैं। विकल्प:
-- कर्सर-आधारित पेजिनेशन (जहां Id इंडेक्स्ड है)
SELECT * FROM DemoTable WHERE Id > 1000000 ORDER BY Id LIMIT 10;