Django访问数据库
在Django models API中使用以下LIMIT子句时--Django访问数据库,django,django-models,Django,Django Models,在Django models API中使用以下LIMIT子句时-- People.objects.all()[5000000:5000000+5] 为了只返回这5条记录,数据库是否必须遍历所有5万条记录?或者它的访问是非线性的?简而言之,它会扫描到该点,并获得您指定的记录数。这实际上取决于您的数据库,不同的数据库在此查询上具有不同的性能。这不是一个随机访问,如果您这样做5次,您应该期望返回相同的记录,假设您的数据没有更改。如果你做一个订单,你会有更可预测的结果 它将至少遍历人员表主键的索引表。在
People.objects.all()[5000000:5000000+5]
为了只返回这5条记录,数据库是否必须遍历所有5万条记录?或者它的访问是非线性的?简而言之,它会扫描到该点,并获得您指定的记录数。这实际上取决于您的数据库,不同的数据库在此查询上具有不同的性能。这不是一个随机访问,如果您这样做5次,您应该期望返回相同的记录,假设您的数据没有更改。如果你做一个订单,你会有更可预测的结果 它将至少遍历
人员
表主键的索引表。在我看来,这个问题与Django如何处理这个问题无关。Django将像数据库一样处理它。Django的ORM只会将其转换为与此类似的查询:
从500万限额5中选择*代码>对不起,我指的是非线性访问,不是随机访问。这应该使问题更加清楚。