MyModel.objects.all().order_by('-timestamp')
时间戳和另一列上有一个唯一键:
`code` varchar(3) NOT NULL,
`timestamp` date NOT NULL,
UNIQUE KEY `exchangerate_currency_70883b95_uniq` (`code`,`timestamp`)
我只想获取表中的最新行。 该查询实现了这一点,但我正在考虑将来它将增长到 100K 行。 此查询和架构是否存在明显的性能问题?
最佳答案
如果没有看到您的完整查询和架构,除了推测之外别无他法。
但是...我相信 MySQL 中多列索引中的列顺序很重要。这意味着您在 (code,timestamp) 上的索引可能无法用于按时间戳排序。如果您将顺序更改为 (timestamp,code),它可能可用于 ORDER BY timestamp,但它可能会损害其他查询的性能。
如果您的使用需要为两者创建索引,您可能需要仅在时间戳列上创建第二个索引。
关于python - 这个 order_by django 查询的性能如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6622153/