MySQL:使用不同的查询索引大量列(150M行)

时间:2010-03-11 15:08:21

标签: mysql performance optimization indexing

基本上我正在处理一个大表(150M行),因此索引非常重要,但它基本上是一个包含几个可搜索的不同字段的表。因此,查询列的方式可能有100种不同的变化,因此为每种不同的变体创建索引是不现实的。

所以要解释一下:有时列可能会出现在查询中,有时则不会。对于几个不同的列,情况也是如此。

2 个答案:

答案 0 :(得分:2)

无论表格有多复杂,对于大多数查询,可能会有几个关键列几乎总是在您的查询中使用。只需索引那些。行扫描听起来是不可避免的,但是如果你已经为关键列编制索引,那么MySQL就足够聪明,可以使用索引来缩小要自动扫描的潜在行。

答案 1 :(得分:0)

只有解决方案几乎是每个表一个索引,然后让优化器对其进行排序(即决定使用哪个索引)。什么数据库,什么是“相当大的表”给你? 1亿行? 10亿行?