gpt4 book ai didi

mysql - 在数据库中存储十六进制和十六进制字符的最佳数据类型

转载 作者:可可西里 更新时间:2023-11-01 07:04:09 25 4
gpt4 key购买 nike

我正在使用以太坊 API。我想将来自 api 的信息存储到 mysql 表中。

地址数据如下:

0x3f5ce5fbfe3e9af3971dd833d26ba9b5c936f0be
0x1d80982502f3bb75654df13aa32bbd5ac9cab7d6
0xaf13bbdbe1ff53c2df7109a53c217320d2d76ee2
...

我一直只对这些字符使用 varchar 列。有更好的数据类型吗?我在想也许 varbinary 但我不知道是否有任何优势。缺点是 sql 代码会比较困惑,因为我将不得不使用 HEX() 和 UNHEX()。

最佳答案

对我来说不存在特定类型,您需要在文本和二进制之间进行选择:

CHAR(40) : ( charset is not important here )

  • 优点:简单
  • 缺点:您需要更多磁盘空间 (~+100%)
  • 缺点:您可能会存储无效的非 hexa 数据

二进制(20):

  • 优点:减少磁盘空间
  • 优点:您不能存储无效数据
  • 缺点:您需要转换(如果您需要查看十六进制值)

对我来说,数据一致性是最重要的一点:我更喜欢二元期权。

  • unhex('FF') == unhex('ff') 但 'FF' <> 'ff'
  • 尝试存储 unhex('zz') 会引发错误,文本不会引发错误)

而且Hex/unHex都是很简单的函数

提示:您可以将数据存储在 BINARY 列中并创建一个 hexa View 以轻松查看 hexa 值。

这是一个在二进制区域 http://rextester.com/SEV11235 中存储数据的示例

关于mysql - 在数据库中存储十六进制和十六进制字符的最佳数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47166199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com