![]() |
1
0
基数与选择性 单列 在某种程度上是无关紧要的 混合成的 指数 将InnoDB BTree索引中的值视为指定列的串联。 用列大致按以下顺序填充索引:
“覆盖”指数会导致一些例外情况。 你的例子: (A) 查询具体的一、二、三、四:
(B) 查询具体的一、二、三和四的范围
这个
(C) 查询4范围内的具体1、2和任意3
但是,这一次,
或者(尽管不太可能),优化器可以选择使用
(D) 使用JOIN查询特定的1和2,3个在列表中,3个在列表中,4个在范围内 这会变得更加棘手,因为优化器将选择从哪个表开始。 通常 它会选择一个有更多过滤可用的,你在数据列表中过滤一,二,四?但另一张桌子上一点也没有。所以
更多: http://mysql.rjweb.org/doc.php/index_cookbook_mysql
“没有PK”——是的,这很糟糕。但它不一定是一个
“另类桌子设计也受欢迎”——我们需要有一个什么样的感觉
如果您有这4个查询,并且希望得到最佳的索引集:
(其他组合也会做得同样好。)
如果你在面试中更挑剔
|
![]() |
Sweepy Dodo · JSON lite的格式化 6 月前 |
![]() |
giantjenga · 优化整数向量到二进制向量的转换 7 月前 |
![]() |
Zegarek · Postgresql递归查询未提供预期结果 7 月前 |
![]() |
Joe · 为什么这两个查询之间的性能存在如此大的差异? 11 月前 |
![]() |
tic-toc-choc · 在`dplyr中高效使用列表进行过滤` 11 月前 |
![]() |
Mohan · 是否有一种更快的方法来编写代码,从1:N中提取许多随机样本? 11 月前 |
![]() |
user2980746 · 在C#字典中键入xyz对的最有效方法是什么? 11 月前 |