我在MySQL数据库中有3列的索引(a,b,c)
当我只查询其中的2个或1个时,它是否有效? (WHERE a = 1
)。
或仅在使用WHERE a = 1 AND b = 1 AND c = 1
答案 0 :(得分:1)
是的,只要您按照提及的顺序对列有条件,索引就会起作用。因此,Could not load type "Doctrine\DBAL\Types\TextType"
500 Internal Server Error - InvalidArgumentException
Stack Trace
in vendor\symfony\symfony\src\Symfony\Component\Form\FormRegistry.php at line 87 -
if (class_exists($name) && in_array('Symfony\Component\Form\FormTypeInterface', class_implements($name))) {
$type = new $name();
} else {
throw new InvalidArgumentException(sprintf('Could not load type "%s"', $name));
}
}
将使用索引,但a = 1
可能不会(除非MySQL决定覆盖索引的扫描比扫描表更快)。
MySQL文档在Multiple-Column Indexes一节中很好地解释了这一点。