我想知道为什么要提供它.该字段依赖于数据库,这不是使它的使用完全不可靠吗?

我想把出生年份存储在模型里,有点像

class Person(models.Model):
  name = models.CharField(max_length=256)
  born = models.IntegerField()

当然,这需要很少的空间,它应该总是4个"字符"长,所以PositiveSmallIntegerField可能适合,但是为什么我要 Select 它而不是普通的IntegerField呢?

推荐答案

许多RDBMS上的性能可能在很大程度上取决于行大小.虽然"纯粹主义"方法可能会说应用程序应该完全独立于底层数据 struct ,但是在许多行上的改进(如使用较小的整数)可以将表大小减少几千兆字节,这使得更多的表可以放入内存中,从而极大地提高了性能.这是ABCs里弗中的B里弗.

我会使用这样的小整数,比如说,表上的主键总是有<;100行,尤其是当它作为外键存储在一个表中时,我希望它会变得非常大.虽然大小是由实现定义的,但可以安全地假设它至少大于127.

Django相关问答推荐

Django在保存时更新m2m对象

未显示SWAGER上的一些示例架构

Django-将html数据保存到quillfield中

Htmx如何从事件中访问数据?

Django迁移嵌套模型时出错,不带迁移基本模型

在Django管理中仅显示外键的特定值

设置wagail开发环境时出现ImportError:";无法从';wagta.search;";导入名称.

如何在Django REST框架中管理序列化程序?

为特定表行更新或创建

try 获取静态文件路径时 Django 给出错误

如何从基于类的视图将用户保存在 django 模型中

基于令牌的身份验证如何工作?

Django:通过manage.py使用服务器和gunicorn等其他服务器之间的区别.哪个更好?

在 Django 过滤器语句中,__exact 和等号 (=) 有什么区别?

django npm 和 node 包架构

Django中视图的多个decorator :执行顺序

Python 社区里的小马是怎么回事?

RemovedInDjango18Warning:不推荐创建没有fields属性或 exclude属性的 ModelForm

Django:根据自定义函数过滤查询

在 Django 中使用 select_related Select 特定字段