我正在使用以太坊 API。我想将来自 api 的信息存储到 mysql 表中。
地址数据如下所示:
0x3f5ce5fbfe3e9af3971dd833d26ba9b5c936f0be
0x1d80982502f3bb75654df13aa32bbd5ac9cab7d6
0xaf13bbdbe1ff53c2df7109a53c217320d2d76ee2
...
我一直只对这些字符使用 varchar 列。有更好的数据类型吗?我想也许 varbinary 但我不知道是否有任何优点。缺点是sql代码会比较混乱,因为我必须使用HEX()和UNHEX()。
对我来说,不存在特定类型,您需要在文本和二进制之间进行选择:
CHAR(40) : (字符集在这里并不重要)
- 优点:简单
- 缺点:你需要更多的磁盘空间(~+100%)
- 缺点:你有存储无效的风险
non hexa
data
二进制(20) :
- 优点:减少磁盘空间
- 优点:你不能存储无效数据
- 缺点:你需要转换(如果您需要查看十六进制值)
For me 数据一致性最重要的一点是:我更喜欢二元期权。
- unhex('FF') == unhex('ff') 但 'FF' 'ff'
- 尝试存储 unhex('zz') 会引发错误,文本不会引发错误)
而且Hex
/unHex
都是非常简单的功能
提示:您可以将数据存储在 BINARY 列中并创建一个hexa
查看轻松查看十六进制值。
这是在二进制区域中存储数据的示例http://rextester.com/SEV11235
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)