例如,我有一张homes桌子:
CREATE TABLE IF NOT EXISTS `homes` (
`home_id` int(10) unsigned NOT NULL auto_increment,
`sqft` smallint(5) unsigned NOT NULL,
`year_built` smallint(5) unsigned NOT NULL,
`geolat` decimal(10,6) default NULL,
`geolng` decimal(10,6) default NULL,
PRIMARY KEY (`home_id`),
KEY `geolat` (`geolat`),
KEY `geolng` (`geolng`),
) ENGINE=InnoDB ;
Run Code Online (Sandbox Code Playgroud)
是否有意义,我使用的复合指数都geolat和geolng,这样的:
我替换:
KEY `geolat` (`geolat`),
KEY `geolng` (`geolng`),
Run Code Online (Sandbox Code Playgroud)
有:
KEY `geolat_geolng` (`geolat`, `geolng`)
Run Code Online (Sandbox Code Playgroud)
如果是这样:
更新:
由于很多人都声明它完全依赖于我执行的查询,因此下面是最常见的查询:
SELECT * FROM homes
WHERE geolat BETWEEN ??? AND …Run Code Online (Sandbox Code Playgroud) 我有一个我希望非常大的度量表.它具有多态关联,因此它可以属于想要记录某些度量的其他模型.我通常索引像这样的关联列来加速关联加载. 我听说有人谈论联合索引这种关联.这看起来像:
add_index :comments, [:commentable_type, :commentable_id]
但我也听到了反对创建低基数指数的建议,因为索引的收益并没有抵消维持它的开销.由于我的多态关联的_type一半可能在数百万行中只有4-5个值,所以我倾向于只对多态关联的_id部分进行索引.我可能会使用_id列和一些其他未提及的整数和日期时间列创建一些额外的联合索引,但我也不会在这些索引中包含_type.
这是你会做什么/推荐?
migration indexing activerecord ruby-on-rails polymorphic-associations