问题描述
我正在开发discord.py机器人。我从sqlite3切换到postgresql(特别是asyncpg),并且在尝试存储行会ID时遇到错误value out of int32 range
。我可以使用bigint之类的方法来解决此问题,但我担心它会占用太多空间吗?改用字符串会更好吗?
[编辑]:我使用的数字是18位数字
解决方法
请务必使用bigint
。
18位数字非常适合bigint
,并且仅占用8个字节。字符串每个字符至少要占用一个字节,再加上一个字节的TOAST标头。
此外,bigint
比较受到硬件的支持,并且速度更快。
所有评论都被删除,因此我将回答这个问题。根据我的观察,bigints最多可以增加20位数字。不和谐ID几乎达到20位数字,因此最好的解决方案是使用字符串。