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

mySQL में IP कैसे स्टोर करें?

मैं आपको यह देखने का सुझाव दूंगा कि आप किस प्रारूप को अपनाते हैं, यह तय करने के लिए आप किस प्रकार के प्रश्नों को चला रहे हैं।

केवल अगर आपको अलग-अलग ऑक्टेट को बाहर निकालने या तुलना करने की आवश्यकता है, तो क्या आपको उन्हें अलग-अलग क्षेत्रों में विभाजित करने पर विचार करना होगा।

अन्यथा, इसे 4 बाइट पूर्णांक के रूप में संग्रहीत करें। इसमें आपको MySQL बिल्ट-इन INET_ATON() और INET_NTOA() कोड> कार्य।

प्रदर्शन बनाम स्पेस

संग्रहण:

यदि आप केवल IPv4 पतों का समर्थन करने जा रहे हैं तो MySQL में आपका डेटाटाइप एक UNSIGNED INT हो सकता है जो केवल 4 बाइट स्टोरेज का उपयोग करता है।

अलग-अलग ऑक्टेट को स्टोर करने के लिए आपको केवल UNSIGNED TINYINT का उपयोग करना होगा डेटाटाइप, नहीं SMALLINTS , जो प्रत्येक संग्रहण में 1 बाइट का उपयोग करेगा।

दोनों विधियों में कुछ ओवरहेड के लिए अलग-अलग फ़ील्ड के लिए शायद कुछ अधिक के साथ समान भंडारण का उपयोग किया जाएगा।

अधिक जानकारी:

प्रदर्शन:

एकल फ़ील्ड का उपयोग करने से बेहतर प्रदर्शन मिलेगा, यह 4 के बजाय एकल तुलना है। आपने उल्लेख किया है कि आप केवल पूरे आईपी पते के विरुद्ध क्वेरी चलाएंगे, इसलिए ऑक्टेट को अलग रखने की कोई आवश्यकता नहीं होनी चाहिए। INET_* का उपयोग करना MySQL के कार्य तुलना के लिए एक बार पाठ और पूर्णांक अभ्यावेदन के बीच रूपांतरण करेंगे।



  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. एक MySQL डेटाबेस में एकाधिक sql फ़ाइलों को आसानी से कैसे आयात करें?

  3. क्या किसी को इस PHP त्रुटि संदेश के पीछे का अर्थ पता है?

  4. रेगेक्स MySQL टिप्पणियों से मेल खाने के लिए

  5. ORDER BY, LIMIT और एकाधिक तालिकाओं के साथ अद्यतन सिंटेक्स