私は支払いシステムを作ろうとします。顧客はビットコインやその他の通貨で購入することができます(USD、EUR)私は(16,8)で10進数の列を持っています。ビットコインの金額は通常通りですが、例えば100米ドルのusd値を入力しようとすると、 100.00000000、私の質問は、このような量を格納する必要がありますか?ビットコインと他の通貨に同じ10進数の列を使用しますか?すべてのレコード数をカウントするとパフォーマンスが悪いですか?またはビットコイン小数点(16,8)と他の通貨小数点(10,2)の複数の列を持つ必要があります、私は方法を表示してください、あなたが答えるときに何百万ものレコードを考慮してください。良い一日をありがとうmysqlデータベースにbitcoinと他の通貨を格納する方法
2
A
答えて
3
スピードとスペースの2つの側面があります。行のフェッチは小数点/二重/などの操作よりもはるかにコストがかかるため、速度は通常問題ではありません。あなたが10億行を話しているならば、スペースは懸念される(そして減速につながる)かもしれない。
Thumbのルール:DECIMAL(m,n)
take約m/2
バイト。 (16,8)
の場合は、正確に8バイト必要です。
DOUBLE
は8バイトです。 BIGINT
:8バイトその他
特に数値をソートする必要がある場合は、数値にはVARCHAR
を使用しないでください。
FLOAT
およびDOUBLE
は、特に丸め誤差を引き起こす可能性があるため、特に多くの数値を加算すると、余分な丸めが発生します。
Bitcoinに必要な正式な最大数は8桁で、その他の通貨では十分ではありません。 4は現在使用されている通貨について聞いたことがあります。 (ポンド/シリング/ペンンスは現在使用されていません)
DECIMAL(16,8)
は100,000,000ドル/ユーロ/何でもオーバーフローします。十分であることを確認してください。 DECIMAL(17,8)
もまた8バイトを要し、最大10億を与えます。だから、16の代わりに17を使うこともできます。
質問に戻る...「完璧な」答えはありません。
関連する問題
- 1. MySQLデータベースに通貨の値を格納する
- 2. php - mysqlデータベースに変数の値を格納する方法
- 3. MySQLデータベースに配列値を格納する方法
- 4. localstorage ArrayをMySQLデータベースに格納する方法は?
- 5. PythonでMySQLデータベースにデータを格納する方法
- 6. MySql:データベースにファイルを格納する方法は?
- 7. ウィンドウパラメータをMySQLデータベースに格納する方法は?
- 8. 春データ:列挙型リストをmySQLデータベースに格納する方法
- 9. 通貨の値を四捨五入して格納する
- 10. ユーザーのコメントを格納するMySQLデータベース
- 11. mysqlデータベースに格納できるようにデータをフォーマットする方法
- 12. 多次元配列の値をjavaのMySQLデータベースに格納する方法は?
- 13. ベース64イメージをデータベースとMy Serverフォルダに格納する方法
- 14. 動的に追加された行をデータベースに格納する方法mysql php
- 15. データベース:CountryCodeによる通貨?
- 16. 価格/通貨フィールドを正しく検証する方法は?
- 17. データベースの通貨モデリング
- 18. データベースからMySQLテーブル名を取得してarraylistに格納する方法
- 19. Excelスプレッドシートからデータを読み込んでMySQLデータベースに格納する方法
- 20. 他のテーブルに多くのIDを格納する方法
- 21. レールアプリの価格と通貨の扱い
- 22. MySQLデータベース(IPv4とIPv6)にIPアドレスを格納しています
- 23. 他のオブジェクトを継承するオブジェクトを格納する方法
- 24. mysqlデータベースに非ラテン文字を格納する際の問題
- 25. バイナリファイルの出力をデータベースに格納する方法
- 26. 複雑なショッピングカートのデータベースに値を格納する方法
- 27. Googleマップアクティビティの場所をSQLデータベースに格納する方法
- 28. アンドロイドスタジオのSQLiteデータベースにビューオブジェクトを格納する方法
- 29. データベースにjqueryのdatepickerを格納する方法
- 30. ブラックベリーアプリケーションのローカルSQL Serverデータベースにテキストボックスデータを格納する方法は?
これはちょうど美容的なものです... BitCoinに必要なときに '10,8 'を使用しますが、USDやEURなどを表示する場合は、プログラミング言語を使用して冗長ゼロを取り除いてください... – Soolie