2017-03-05 34 views
2

可以使用哪種數據類型在SQL中存儲真正的大整數。我使用phpmyAdmin來查看數據和Java程序來存儲和檢索值。其實我正在使用Bilinear Maps,它使用從Zp生成的隨機數字,其中p是非常大的素數,然後「提升到」這些數字的操作。在sql中存儲300位數字

我想在數據庫中存儲一些數字,如公鑰。 SQL可以使用哪些數據類型來表示這些值?

回答

3

您可以使用CHARACTER類型將它們存儲爲十進制數字串。雖然這確實浪費了一些空間,但優點是數據庫對於人類來說更容易理解。

您可以使用類型BLOB將它們存儲爲原始二進制大端值。這對於軟件訪問和佔用最少空間是最有效的。但是,人類將無法輕鬆地查詢數據庫中的這些值或在轉儲中理解它們。

就個人而言,我會選擇blob,除非真正需要使用標準查詢工具的人可以理解數據庫。如果您無法避免需要使用不理解數據格式的工具來管理數據庫,那麼只需在文本中使用十進制值。

2

對於MySQL,VARCHAR(300) CHARACTER SET ascii

  • VAR,假設數值不會總是正好300
  • CHAR - 沒有什麼大的優勢BLOB
  • ascii - 無需參與utf8。
  • DECIMAL將不起作用,因爲有64位數限制。

佔用的空間將是2 +長度字節(在您的示例中爲302),其中2爲VAR的長度。