使用 FastAPI 和 MYSQL 的 SQLAlchemy 中自动生成的主列(整数)的默认限制是多少?
What is the default limit for auto generated primary Column(Integer) in SQLAlchemy with FastAPI and MYSQL?
目前,我正在使用 Python 的 fastAPI 与 SQLAlchemy 和 MYSQL。我定义了一个自动生成的主列,如下所示。该列最多可以容纳多少个数?目前,数据库每天增长 10k 条记录,我在周末清理了其中的 70%。记录的数量将始终保持不变,但我想知道 'id' 在分解之前可以保持的最大限制。此 'id' 列对我很重要,用于对结果进行排序,我不希望它以某种方式溢出。
class SampleData(SampleTable):
__tablename__ = 'demotable'
id = Column(Integer, primary_key=True)
col1 = Column(String(100))
col2 = Column(String(100))
'id' 列可以容纳的最大值是多少?
MySQL(以及大多数其他编程语言)中有符号整数的最大值为 232-1,或 2147483647。
记录在案:https://dev.mysql.com/doc/refman/8.0/en/integer-types.html
如果您每天使用 10k 个 id 值,那将在 214748 天后溢出,或将近 588 年。
如果这还不够,请将您的 ID 列设置为 BIGINT
。然后它会一直持续到地球的太阳包围地球之后。
目前,我正在使用 Python 的 fastAPI 与 SQLAlchemy 和 MYSQL。我定义了一个自动生成的主列,如下所示。该列最多可以容纳多少个数?目前,数据库每天增长 10k 条记录,我在周末清理了其中的 70%。记录的数量将始终保持不变,但我想知道 'id' 在分解之前可以保持的最大限制。此 'id' 列对我很重要,用于对结果进行排序,我不希望它以某种方式溢出。
class SampleData(SampleTable):
__tablename__ = 'demotable'
id = Column(Integer, primary_key=True)
col1 = Column(String(100))
col2 = Column(String(100))
'id' 列可以容纳的最大值是多少?
MySQL(以及大多数其他编程语言)中有符号整数的最大值为 232-1,或 2147483647。
记录在案:https://dev.mysql.com/doc/refman/8.0/en/integer-types.html
如果您每天使用 10k 个 id 值,那将在 214748 天后溢出,或将近 588 年。
如果这还不够,请将您的 ID 列设置为 BIGINT
。然后它会一直持续到地球的太阳包围地球之后。