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

क्या "SELECT 1 ..." क्वेरी में "LIMIT 1" का उपयोग करना समझदारी है?


MySQL में SELECT 1 के साथ LIMIT 1 का उपयोग

हाँ, SELECT 1 क्वेरी में LIMIT 1 का उपयोग करना समझदारी है, विशेषकर बड़ी टेबल पर अस्तित्व जांच (existence check) के लिए।

समस्या: SELECT 1 बिना LIMIT

mysql> select 1 from Select1AndLimit1Demo;

यदि टेबल में 7 पंक्तियाँ हैं, तो 7 बार '1' लौटाता है।

+---+
| 1 |
+---+
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
+---+

समाधान: LIMIT 1 जोड़ें

mysql> select 1 from Select1AndLimit1Demo limit 1;

केवल एक बार '1' लौटाता है।

+---+
| 1 |
+---+
| 1 |
+---+

क्यों उपयोगी है?

  • अस्तित्व जांच: SELECT 1 FROM table WHERE condition LIMIT 1 - यदि कोई पंक्ति मिलती है तो 1 लौटाता है, अन्यथा खाली सेट
  • प्रदर्शन: पहली मिलान पंक्ति के बाद स्कैन रोक देता है (पूर्ण टेबल स्कैन से बचाता है)
  • नेटवर्क: कम डेटा स्थानांतरण
  • एप्लिकेशन कोड: बूलियन जांच के लिए सरल (if (rs.next()) exists = true)

उदाहरण: अस्तित्व जांच पैटर्न

-- खराब: पूरी टेबल स्कैन करता है
SELECT COUNT(*) FROM users WHERE email = 'test@example.com';

-- अच्छा: पहली मिलान पर रुकता है
SELECT 1 FROM users WHERE email = 'test@example.com' LIMIT 1;

-- EXISTS भी अच्छा है (ऑप्टिमाइज़र समान योजना बना सकता है)
SELECT EXISTS(SELECT 1 FROM users WHERE email = 'test@example.com');

नोट

  • SELECT 1 के बजाय SELECT * भी काम करता है, लेकिन 1 थोड़ा तेज़ और स्पष्ट है
  • इंडेक्स होने पर LIMIT 1 के साथ बहुत तेज़
  • EXISTS सिमेंटिक रूप से अधिक सही है अस्तित्व जांच के लिए
  1. MySQL के NOW() और CURDATE() को UTC कैसे बनाएं? MySQL के NOW() और CURDATE() को UTC कैसे बनाएं?

    MySQL के NOW() और CURDATE() को UTC समयक्षेत्र में काम करने के लिए कॉन्फ़िगरेशन फ़ाइल में सेटिंग बदलनी होती है। विधि 1: my.cnf / my.ini में स्थायी सेटिंग कॉन्फ़िगरेशन फ़ाइल में [mysqld] सेक्शन के अंतर्गत जोड़ें: [mysqld] default-time-zone = +00:00 या [mysqld_safe] के अंतर्गत: [mysqld_safe] timezone

  1. Java में MySQL के लिए PreparedStatement का उपयोग करके SELECT क्वेरी कैसे चलाएं? Java में MySQL के लिए PreparedStatement का उपयोग करके SELECT क्वेरी कैसे चलाएं?

    Java में PreparedStatement से SELECT क्वेरी निष्पादित करना SELECT क्वेरी के लिए executeQuery() मेथड का उपयोग किया जाता है। सिंटैक्स PreparedStatement pstmt = connection.prepareStatement(query); ResultSet rs = pstmt.executeQuery(); उदाहरण: डेटाबेस में टेबल बनाएं ); डेटा डालें: insert into JavaP

  1. नोकिया 1.3 रिव्यू: क्या $99 (करीब ₹8,200) एक समझदारी भरा सौदा है? नोकिया 1.3 रिव्यू: क्या $99 (करीब ₹8,200) एक समझदारी भरा सौदा है?

    2013 में जब मैंने अपना नोकिया 520 खरीदा था, तब मुझे उम्मीद नहीं थी कि यह 2020 तक चलेगा और अब भी सुचारू रूप से काम करेगा। लेकिन मुझे नोकिया फोन हमेशा से पसंद रहे हैं - वाकई बहुत पसंद। उनमें एक अलग ही शान और स्टाइल थी, वे टिकाऊ थे और लंबे समय तक चलने के लिए बने थे। आज भी मेरे पास नोकिया E6 है और अपनी