Database `ORDER BY` speeds as more entries are added
我对数据库不是很了解。我想检索"最新"的10行,其中所有者ID匹配一些内容,然后可能分页以检索下一个"最新"的10行,以此类推。但是假设我正在向数据库表中添加越来越多的行——在某个时刻,这样的查询会变得异常缓慢,还是数据库一般都足够好,这样做就不会令人担心了?
我认为这是一个问题,因为要获得"最新"的10行,您必须按日期订购,即
否则,是否有更好的方法来获取"最新"n行(似乎是建议的)?
我正在Django开发这个应用程序,如果有人知道一个方便的方法,但除此之外,Django还允许原始数据库查询。
好吧,如果您使用的是django,那么您不必担心db的复杂性。ORM来解决你的担忧。
简单的事实是,Django使用了惰性查询。因此,它将减少您的数据库命中并提高系统性能。
因此,根据问题的初始部分,您可以简单地运行此查询:
1 | queryset = YourModel.objects.filter(**lookup_condition).order_by('id') |
它将从该模型类的数据库中获取与条件匹配的对象的查询集。有关详细信息,请查看:https://docs.djangoproject.com/en/1.9/ref/models/queryset/django.db.models.query.queryset.filter
要在上面打架,就要这样跑:
1 2 3 | first_ten_values = queryset[0:9] second_ten_values = queryset[10:19] ... |