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

एक mysql डीबी में क्रमबद्ध डेटा स्टोर करने के लिए किस कॉलम प्रकार का उपयोग किया जाना चाहिए?

उत्तर देने के लिए:ऐसा लगता है कि टेक्स्ट बहुत सारे डीबीएमएस में बहिष्कृत है, इसलिए उच्च सीमा वाले ब्लॉब या वर्चर का बेहतर उपयोग करें (और ब्लॉब के साथ आपको कोई एन्कोडिंग समस्या नहीं मिलेगी, जो वर्चर और टेक्स्ट के साथ एक बड़ी परेशानी है) ।

साथ ही MySQL फ़ोरम पर यह थ्रेड में बताया गया है , हार्ड-ड्राइव सॉफ़्टवेयर की तुलना में सस्ते होते हैं, इसलिए बेहतर होगा कि आप पहले अपने सॉफ़्टवेयर को डिज़ाइन करें और उसे काम करें, और उसके बाद ही यदि स्थान एक समस्या बन जाए, तो आप उस पहलू को अनुकूलित करना चाह सकते हैं। इसलिए अपने कॉलम के आकार को बहुत जल्दी अनुकूलित करने का प्रयास न करें, बेहतर है कि पहले आकार को बड़ा सेट करें (साथ ही यह सुरक्षा समस्याओं से बच जाएगा)।

विभिन्न टिप्पणियों के बारे में:यहाँ बहुत अधिक SQL कट्टरता। इस तथ्य के बावजूद कि मुझे SQL और रिलेशनल मॉडल का बहुत शौक है, उनके नुकसान भी हैं।

डेटाबेस में क्रमबद्ध डेटा को इस रूप में संग्रहीत करना (जैसे कि JSON या XML स्वरूपित डेटा संग्रहीत करना) के कुछ फायदे हैं:

  • आपके पास अपने डेटा के लिए अधिक लचीला प्रारूप हो सकता है:फ़्लाई पर फ़ील्ड जोड़ना और निकालना, फ़्लाई पर फ़ील्ड के विनिर्देश बदलना, आदि...
  • ऑब्जेक्ट मॉडल के साथ कम प्रतिबाधा बेमेल:आप डेटा प्राप्त करने और फिर इसे अपने प्रोग्राम ऑब्जेक्ट्स की संरचनाओं और आपके रिलेशनल डेटाबेस की संरचनाओं के बीच संसाधित और परिवर्तित करने की तुलना में डेटा को स्टोर करते हैं और आप अपने प्रोग्राम में डेटा प्राप्त करते हैं। ।

और भी बहुत से अन्य फायदे हैं, इसलिए कृपया कोई कट्टरवाद न करें:संबंधपरक डेटाबेस एक महान उपकरण हैं, लेकिन आइए हम प्राप्त कर सकने वाले अन्य टूल को डिश न करें। अधिक टूल, बेहतर।

उपयोग के एक ठोस उदाहरण के लिए, मैं अपने डेटाबेस में एक रिकॉर्ड के अतिरिक्त पैरामीटर को स्टोर करने के लिए एक JSON फ़ील्ड जोड़ता हूं जहां JSON डेटा के कॉलम (गुण) व्यक्तिगत रूप से कभी नहीं चुने जाएंगे, लेकिन केवल सही रिकॉर्ड होने पर ही उपयोग किया जाएगा पहले से ही चयनित है। इस मामले में, मैं अभी भी रिलेशनल कॉलम के साथ अपने रिकॉर्ड में भेदभाव कर सकता हूं, और जब सही रिकॉर्ड का चयन किया जाता है, तो मैं जो भी उद्देश्य चाहता हूं, उसके लिए मैं अतिरिक्त पैरामीटर का उपयोग कर सकता हूं।

तो मेरी सलाह है कि दोनों दुनिया (गति, क्रमिकता और संरचनात्मक लचीलापन) के सर्वश्रेष्ठ को बनाए रखने के लिए, अपनी पंक्तियों के बीच भेदभाव करने के लिए अद्वितीय कुंजी के रूप में सेवा करने के लिए बस कुछ मानक रिलेशनल कॉलम का उपयोग करें, और फिर एक ब्लॉब/वर्कर कॉलम का उपयोग करें जहां आपका क्रमबद्ध डेटा होगा डाला जाए। आम तौर पर, एक अद्वितीय कुंजी के लिए केवल दो/तीन कॉलम की आवश्यकता होती है, इस प्रकार यह एक बड़ा ओवरहेड नहीं होगा।

साथ ही, आपको PostgreSQL में दिलचस्पी हो सकती है, जिसमें अब JSON डेटाटाइप है, और PostSQL प्रोजेक्ट JSON फ़ील्ड को सीधे रिलेशनल कॉलम के रूप में संसाधित करने के लिए।



  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 N पंक्तियों की चलती औसत की गणना करता है

  3. PHP और mySQL - को के रूप में लिखा गया है

  4. व्याख्या कथन में MySQL key_len को समझना

  5. दूरस्थ Mysql सर्वर (AWS औरोरा) पर Laravel अनुमति अस्वीकृत