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

11,000,000 अद्वितीय आईडी बनाने का सबसे तेज़ तरीका

यदि आप निम्न तालिका बनाते हैं:

 CREATE TABLE sequence (
     sequence_id BIGINT NOT NULL AUTO_INCREMENT,
     PRIMARY KEY (`sequence_id`)
) 

फिर इन तीन प्रश्नों को एक के बाद एक जारी करें:

INSERT INTO sequence () VALUES ();
DELETE FROM sequence WHERE sequence_id < LAST_INSERT_ID();
SELECT LAST_INSERT_ID() AS sequence;

तीसरी क्वेरी गारंटीकृत . है एक अद्वितीय अनुक्रम संख्या वापस करने के लिए। यह गारंटी तब भी कायम रहती है, जब आपके पास अपने डेटाबेस से जुड़े दर्जनों अलग-अलग क्लाइंट प्रोग्राम हों। यही AUTO_INCREMENT की खूबसूरती है।

इन अनुक्रम संख्याओं में से केवल ग्यारह मिलियन को सामने ही उत्पन्न करने के बजाय, जब भी आपको इसकी आवश्यकता हो, आप एक अद्वितीय अनुक्रम संख्या प्राप्त करने के लिए इन SQL क्वेरी का उपयोग कर सकते हैं।

यदि आपको क्रम संख्या 12 मिलियन के आसपास लपेटना है तो आप इसके बजाय इन प्रश्नों का उपयोग कर सकते हैं।

INSERT INTO sequence () VALUES ();
DELETE FROM sequence WHERE sequence_id < LAST_INSERT_ID();
SELECT LAST_INSERT_ID() MOD 12000000 AS sequence;

अद्वितीयता के लिए ऑटो-इंक्रीमेंट अनुक्रम संख्या का उपयोग करने के लिए यहां तरकीब है, लेकिन तालिका में पंक्तियों को हटाने के लिए भी है ताकि यह बहुत अधिक जगह नहीं ले सके।

ध्यान दें कि आप अन्य उद्देश्यों के लिए LAST_INSERT_ID() की अनुक्रम संख्या का भी उपयोग कर सकते हैं, जैसे उदाहरण के लिए।

INSERT INTO sequence () VALUES ();
DELETE FROM sequence WHERE sequence_id < LAST_INSERT_ID();
INSERT INTO user (userid, username, phone) 
          VALUES (LAST_INSERT_ID() MOD 12000000, 'Joe', '800-555-1212');
SELECT LAST_INSERT_ID() MOD 12000000 AS sequence;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Django व्यवस्थापक - लॉगिन

  2. दो स्तंभों को एक तालिका से दूसरी तालिका में कॉपी करें, लेकिन केवल अद्वितीय मान

  3. Php . में ISO8601 को दिनांक प्रारूप में कैसे बदलें

  4. उन सभी का चयन करें जहां फ़ील्ड में अल्पविराम द्वारा अलग की गई स्ट्रिंग है

  5. Mysql में लिंक कैसे सेव करें?