在《高性能Mysql》这本书的‘如何使用分区’这一小章中,列举的常见问题中,有以下一个问题:
分区列和索引列不匹配
如果定义的索引列和分区列不匹配,会导致查询无法进行分区过滤。假设在列a上定义了索引,而在列b上定义的分区。因为每个分区都有其独立的索引,所以扫描列b上的索引就需要扫描每个分区内对应的索引。
要避免这个问题,应该避免建立和分区列不匹配的索引,除非查询中还同时包含了可以过滤分区的条件。