आपके द्वारा सुझाए गए तीन में से एक स्पष्ट सर्वोत्तम विकल्प है (साथ ही टिप्पणियों में से एक)।
बिगिनट — केवल 8 बाइट्स का उपयोग करता है, लेकिन सबसे बड़ा BIGINT
केवल 19 दशमलव अंक हैं; यदि आप 10 से विभाजित करते हैं, तो आप जो सबसे बड़ा मान दर्शा सकते हैं वह 9.22 है, जो कि पर्याप्त सीमा नहीं है।
डबल — केवल 15-17 परिशुद्धता के दशमलव अंक हैं; फ़्लोटिंग-पॉइंट अंकगणित की सभी ज्ञात कमियां हैं।
VARCHAR - यदि आप 18 दशमलव स्थानों के साथ काम कर रहे हैं तो 20+ बाइट्स का उपयोग करेंगे; निरंतर स्ट्रिंग-इंट रूपांतरण की आवश्यकता होगी; क्रमबद्ध नहीं किया जा सकता; तुलना नहीं की जा सकती; डीबी में नहीं जोड़ा जा सकता है; कई कमियां।
दशमलव(27,18) - अगर MySQL का उपयोग कर रहे हैं, तो इसमें 12 बाइट्स लगेंगे (9 अंकों के प्रत्येक समूह के लिए 4 ) यह काफी उचित भंडारण आकार है, और इसमें एक अरब जितनी बड़ी या एक वी जितनी छोटी राशि का समर्थन करने के लिए पर्याप्त सीमा है। इसे डेटाबेस में सटीकता की हानि के बिना क्रमबद्ध, तुलना, जोड़ा, घटाया आदि किया जा सकता है।
मैं DECIMAL(27,18)
. का उपयोग करूंगा (या DECIMAL(36,18)
अगर आपको वास्तव में बड़े मूल्यों को स्टोर करने की आवश्यकता है) क्रिप्टोकुरेंसी मनी वैल्यू स्टोर करने के लिए।