我正在使用以太坊api。我想将api中的信息存储到mysql表中。
地址数据如下:
0x3f5ce5fbfe3e9af3971dd833d26ba9b5c936f0be
0x1d80982502f3bb75654df13aa32bbd5ac9cab7d6
0xaf13bbdbe1ff53c2df7109a53c217320d2d76ee2
...
我一直在使用varchar列来表示这些字符。有更好的数据类型吗?我想也许是varbinary但我不知道是否有任何好处。缺点是sql代码将更加混乱,因为我将使用HEX()和UNHEX()。
答案 0 :(得分:4)
对我来说,不存在特定类型,您需要在文本和二进制文件之间进行选择:
CHAR(40) :( charset is not important here)
non hexa
数据的风险BINARY(20):
对我来说数据一致性是最重要的一点:我更喜欢二元期权。
此外Hex
/ unHex
是非常简单的功能
提示:您可以将数据存储在BINARY列中,并创建hexa
视图以轻松查看hexa值。
以下是在二进制区http://rextester.com/SEV11235
中存储数据的示例答案 1 :(得分:2)
优势CHAR
:简洁。
优势BINARY
:每行节省22个字节。
在我看来,复杂性的增加并不值得节省空间,除非你要查看最少的百万行数据库。即便如此,我可能也不会打扰。
在任何一种情况下,如果您非常关心,可以使用固定长度的列而不是变量来保存一两个字节(并可能改善数据库结构优化)。