Django的ID整数限制(django id integer limit)

2019-06-27 10:48发布

是否有在Django模型中的下拉列表AutoField或数据库后端的限制?

Django的项目我的工作可能会看到大量的对象,其中将超过40000很短的时间量内的某些数据库表。

我使用的开发和PostgreSQL生产sqlite的。

Answer 1:

添加此作为一个答案。 Django的映射这个串行列这意味着该最大值在2十亿范围(2,147,483,647是精确的)。 虽然这是不太可能对于大多数应用程序的问题,如果你这样做,你可以改变的类型成为一个BIGINT代替,这将使它极不可能的,你永远不会达到64位int空间的结束。



Answer 2:

添加新的信息Django 2.x


Django的AutoFieldIntegerField 。 对于文档IntegerField说:

从价值观-2.147.483.6482.147.483.647是Django支持的所有数据库的安全。

AutoField每默认情况下只使用正数,因此它们的值可以去从12.147.483.647


由于Django 1.10还有一个BigAutoField ,这是非常相似的BigIntegerField 。 对于文档BigAutoField说:

一个64位的整数[...]这是保证适合号码从19.223.372.036.854.775.807

现在,文档不说,它明确了这一领域,但使用的话is garanteed to fit ,我认为适用于Django支持的所有数据库。



Answer 3:

正如其他人所说是否使用intbigint ,分别您有2.147.483.6489.223.372.036.854.775.808值。

如果你想超过这些数字,你可以做分片。 总之,分片是通过在多个数据库之间的多个表存储在同一个表的不同行水平分区数据的方式。

有Django的许多可用的分片库(如Django的分片 )



文章来源: django id integer limit