比较来自世界各地的卖家的域名和 IT 服务价格

rails-created_at 用户何时订购,您是否需要向表中添加索引?

嗨,我的照片我有:我有:


default_scope :order => 'photos.created_at DESC, photos.version DESC'


考虑到我订购 CREATED_AT 和版本......我应该有一个索引 DB 在 CREATED_AT?

已邀请:

风见雨下

赞同来自:

一个可以有用的一个技巧:在典型的模型中 MySql/ActiveRecord 你将会有
id

作为数值主键 /因此隐含索引/, 这应该是相同的顺序
created_at

- 你是什​​么意思你可以订购什么
id

并在没有记录额外索引的成本的情况下获得快速性能。

风见雨下

赞同来自:

以下是基于我的经验。 PostgreSQL, 但它可能会用于 MySQL 和别的。

如果计划从此表中提取大量记录或在页面上使用分区,则使用该索引
ORDER BY

, 将是有用的。

您必须以相同的顺序为所有订单字段创建索引。 如果你正在混合
ASC


DESC

在疼痛
ORDER BY

, 您需要创建具有这些特定订单的索引,以充分利用索引的优势。

合适的迁移 ActiveRecord 对于您的桌面照片将是:


add_index :photos, [:created_at, :version]


我建议看看输出
EXPLAIN ANALYZE

在添加索引之前和之后的生产数据,以确保它具有您正在寻找的效果。

郭文康

赞同来自:

当索引添加到多个表时,我昨晚刚刚阅读了它。 简短的答案-'yes'。 这一点是非常雄辩的:

https://web.archive.org/web/20 ... dexes
还有更长的答案 'yes', 但根据您的应用程序如何与数据交互,为什么不测试他,而不是看到您从中获得的内部内部。

要回复问题请先登录注册