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

UUID को नंबर के रूप में कैसे स्टोर करें?

अगर मैं सही ढंग से समझूं, तो आप अपने प्राथमिक कॉलम में यूयूआईडी का उपयोग कर रहे हैं? लोग कहेंगे कि एक नियमित (पूर्णांक) प्राथमिक कुंजी तेज होगी, लेकिन MySQL के अंधेरे पक्ष का उपयोग करने का एक और तरीका है। वास्तव में, जब अनुक्रमणिका की आवश्यकता होती है, तो MySQL किसी अन्य चीज़ की तुलना में बाइनरी का उपयोग अधिक तेज़ करता है।

चूंकि यूयूआईडी 128 बिट्स है और इसे हेक्साडेसिमल के रूप में लिखा गया है, इसलिए यूयूआईडी को तेज करना और स्टोर करना बहुत आसान है।

सबसे पहले, अपनी प्रोग्रामिंग भाषा में डैश हटा दें

110E8400-E29B-11D4-A716-446655440000 से करने के लिए 110E8400E29B11D4A716446655440000

अब इसमें 32 वर्ण हैं (जैसे MD5 हैश, जिसके साथ यह भी काम करता है)।

चूंकि एक BINARY MySQL में आकार में 8 बिट है, BINARY(16) एक यूयूआईडी (8*16 =128) का आकार है।

आप इसका उपयोग करके सम्मिलित कर सकते हैं:

INSERT INTO Table (FieldBin) VALUES (UNHEX("110E8400E29B11D4A716446655440000"))

और क्वेरी का उपयोग कर:

SELECT HEX(FieldBin) AS FieldBin FROM Table

अब अपनी प्रोग्रामिंग भाषा में, अपने मूल UUID से मिलान करने के लिए 9, 14, 19 और 24 की स्थिति में डैश को फिर से डालें। यदि स्थितियां हमेशा भिन्न होती हैं, तो आप उस जानकारी को दूसरे क्षेत्र में संग्रहीत कर सकते हैं।

पूरा उदाहरण :

CREATE TABLE  `test_table` (
    `field_binary` BINARY( 16 ) NULL ,
    PRIMARY KEY (  `field_binary` )
) ENGINE = INNODB ;

INSERT INTO  `test_table` (
    `field_binary`
)
VALUES (
    UNHEX(  '110E8400E29B11D4A716446655440000' )
);

SELECT HEX(field_binary) AS field_binary FROM `test_table`

यदि आप किसी भी हेक्स स्ट्रिंग के साथ इस तकनीक का उपयोग करना चाहते हैं, तो हमेशा length / 2 . करें क्षेत्र की लंबाई के लिए। तो sha512 के लिए, फ़ील्ड होगा BINARY (64) चूंकि sha512 एन्कोडिंग 128 वर्ण लंबा है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कॉन्फ़िगरेशन फ़ाइल में सादा पाठ में MySQL पासवर्ड संग्रहीत करने से बेहतर तरीका?

  2. CentOS पर MySQL8 स्थापित करने के चरण

  3. MySQL - डेटाबेस कैरेक्टर सेट एन्कोडिंग और कोलेशन समझाया गया

  4. MySQL में डेटाटाइम कॉलम से दिनांक कैसे प्राप्त करें

  5. MySQL में एक विशिष्ट कॉलम के बाद कई कॉलम जोड़ना