【发布时间】:2010-03-11 15:08:20
【问题描述】:
基本上我正在处理一个大表(150M 行),因此索引非常重要,但它基本上是一个具有多个可搜索的不同字段的表。因此,查询列的方式可能有 100 种不同的变体,因此为每个不同的变体创建索引是不现实的。
所以再解释一下:有时一列可能会出现在查询中,有时不会。这适用于几个不同的列。
【问题讨论】:
标签: mysql performance optimization indexing
基本上我正在处理一个大表(150M 行),因此索引非常重要,但它基本上是一个具有多个可搜索的不同字段的表。因此,查询列的方式可能有 100 种不同的变体,因此为每个不同的变体创建索引是不现实的。
所以再解释一下:有时一列可能会出现在查询中,有时不会。这适用于几个不同的列。
【问题讨论】:
标签: mysql performance optimization indexing
无论表多么复杂,对于大多数查询来说,可能有几个关键列几乎总是在您的查询中使用。只需索引那些。听起来行扫描是不可避免的,但如果您已经为关键列建立了索引,MySQL 就足够聪明,可以使用索引来缩小要自动扫描的潜在行的范围。
【讨论】:
几乎唯一的解决方案是每个表一个索引,然后让优化器对其进行排序(即决定使用哪个索引)。什么数据库,什么是你的“相当大的表”? 1亿行? 10 亿行?
【讨论】: