neu*_*ert 2 mysql sql indexing
所以假设我有一个包含两个索引的表 - 一个在列a上,另一个在列a,b和c上.
我注意到,根据索引定义中列的顺序,MySQL可能会使用单列索引而不是多列索引,即使多列索引中的所有三列都在ON中被引用加入的一部分.
这有点引出了一个问题......如何找出列的理想排序?你只需要暴力吗?
Bil*_*win 12
索引中列的顺序并不相关.有一种方法.
首先,涉及等式项的一个或多个列与AND组合.
WHERE a = 1 AND b = 2
Run Code Online (Sandbox Code Playgroud)第二,涉及范围术语的单个列.要么是这样,要么是排序中涉及的一个或多个列.
WHERE a = 1 AND b = 2 AND c > 3
Run Code Online (Sandbox Code Playgroud)
要么
WHERE a = 1 AND b = 2
ORDER BY c, d
Run Code Online (Sandbox Code Playgroud)第三,select-list中引用的列,但未通过搜索或排序引用.
SELECT x, y, z
. . .
WHERE a = 1 AND b = 2 AND c > 3
Run Code Online (Sandbox Code Playgroud)这将导致索引(a, b, c, x, y, z).