小编Piy*_*usG的帖子

mysql命令由-id vs命令由id desc命令

我希望从1M行的表中获取最后10行.

CREATE TABLE `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `updated_date` datetime NOT NULL,
  PRIMARY KEY (`id`)
)
Run Code Online (Sandbox Code Playgroud)

这样做的一种方法是 -

select * from test order by -id limit 10;

**10 rows in set (0.14 sec)**
Run Code Online (Sandbox Code Playgroud)

另一种方法是 -

select * from test order by id desc limit 10;

**10 rows in set (0.00 sec)**
Run Code Online (Sandbox Code Playgroud)

所以我对这些查询进行了"解释" -

以下是我使用'order by desc'的查询结果

EXPLAIN select * from test order by id desc limit 10;
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

以下是我使用'order by -id'的查询结果

EXPLAIN select * from test order by -id …
Run Code Online (Sandbox Code Playgroud)

mysql database-performance

15
推荐指数
1
解决办法
3427
查看次数

django admin list_display 外键 id 没有加入

class CDR(models.Model):
    order = models.ForeignKey(Order)
    call = models.ForeignKey(Call)
    start_date = models.DateTimeField(auto_now_add=True)
    end_date = models.DateTimeField(null=True)
    remark = models.CharField(max_length=200, null=True)

class CDRAdmin(admin.ModelAdmin):
    search_fields = ('order__id',)
    raw_id_fields = ('call', 'order')
    list_display = ('call', 'order', 'start_date', 'remark')

    models = CDR
Run Code Online (Sandbox Code Playgroud)

由于 CDR 表 Call 和 Order 中有 2 个外键,但是为了在 list_display 中显示这些 id,它会与 Call 和 Order 表连接,并且由于所有这 3 个表都有大量数据行,因此会导致查询速度变慢。

有没有办法在没有加入的情况下解决它?

当我在 list_display 中使用 call__id 和 order__id 时,它会引发ImproperlyConfigured,而没有 __id 它会__repr__在连接结果上显示对象。

django django-models django-admin

3
推荐指数
1
解决办法
2593
查看次数