Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

अनुक्रमित/अद्वितीय फ़ील्ड पर पूछताछ करते समय MySQL LIMIT 1 का उपयोग करने का कोई मतलब है?

प्राथमिक कुंजी/अद्वितीय फ़ील्ड पर क्वेरी करते समय क्या MySQL “LIMIT 1” का उपयोग करने का कोई मतलब है?

LIMIT 1 . का उपयोग करना अच्छा अभ्यास नहीं है फ़िल्टर मानदंड के साथ क्वेरी करते समय जो प्राथमिक कुंजी या अद्वितीय बाधा के विरुद्ध है। एक प्राथमिक कुंजी, या अद्वितीय बाधा, का अर्थ है कि उस मान के साथ तालिका में केवल एक पंक्ति/रिकॉर्ड है, केवल एक पंक्ति/रिकॉर्ड कभी भी वापस किया जाएगा। LIMIT 1 . होना विरोधाभासी है प्राथमिक कुंजी/अद्वितीय फ़ील्ड पर -- कोई व्यक्ति जो बाद में कोड बनाए रखता है वह महत्व को भूल सकता है और दूसरा आपके कोड का अनुमान लगा सकता है।

लेकिन अंतिम संकेतक व्याख्या योजना है:

explain SELECT t.name FROM USERS t WHERE t.userid = 4

...रिटर्न:

id  | select_type | table   | type  | possible_keys  | key      | key_len  |  ref  |  rows  |  Extra
-----------------------------------------------------------------------------------------------------
1   | SIMPLE      | users   | const | PRIMARY        | PRIMARY  | 4        | const | 1      |

...और:

explain SELECT t.name FROM USERS t WHERE t.userid = 4 LIMIT 1

...रिटर्न:

id  | select_type | table   | type  | possible_keys  | key      | key_len  |  ref  |  rows  |  Extra
-----------------------------------------------------------------------------------------------------
1   | SIMPLE      | users   | const | PRIMARY        | PRIMARY  | 4        | const | 1      |

निष्कर्ष

कोई फर्क नहीं, कोई जरूरत नहीं। ऐसा लगता है कि इस मामले में इसे ऑप्टिमाइज़ किया गया है (केवल प्राथमिक कुंजी के विरुद्ध खोज रहा है)।

अनुक्रमित फ़ील्ड के बारे में क्या?

एक अनुक्रमित फ़ील्ड फ़िल्टर किए जा रहे मान की विशिष्टता की गारंटी नहीं देता है, एक से अधिक घटनाएँ हो सकती हैं। तो LIMIT 1 समझ में आता है, मान लीजिए कि आप एक पंक्ति वापस करना चाहते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Neo4j - Cypher . का उपयोग करके एक नोड बनाएं

  2. MySQL के उपयोगकर्ताओं को पॉप्युलेट करने के विभिन्न तरीके

  3. अद्यतन SQL क्वेरी में ऑफ़सेट या ऑफ़सेट को सीमित करें

  4. काम के घंटों को स्टोर करने और इसे कुशलता से क्वेरी करने का सबसे अच्छा तरीका

  5. क्या मैं ALTER तालिका को पूर्ववत कर सकता हूँ - MySQL?