全局索引吧,mysql好像没有分区本地索引的。我记得oracle好像有
4 个赞
赞一下
6 个赞
先码住
5 个赞
嗯,我仔细看了下文档。3.1.1后默认是本地索引(知识体系还在3.0 时代 )。有个问题请大佬解答下:既然有了分区 裁剪,那么局部前缀索引与局部非前缀索引的优劣势在哪呢?
3 个赞
超级棒的笔记
4 个赞
记得前几天在 这个帖子 里回复过您一个类似的问题。
例如 c1 是分区键,过滤条件是 WHERE c1 = 1 and c2 = 2 and c3 > 3,那么 idx1(c2, c3) 就是您说的局部前缀索引,idx2(c3, c2) 就是您说的局部非前缀索引。
这个过滤条件中:
- 如果用 idx1 的话,会先分区裁剪,然后利用 idx1 对 c2 = 2 and c3 > 3 这两个过滤条件进行过滤;
- 如果用 idx2 的话,也会先分区裁剪,然后利用 idx2 对 c3 > 3 这一个过滤条件进行过滤,然后再把过滤出来的结果遍历一遍,遍历时会用 c2 = 2 这个条件进行过滤,效率明显会比用 idx1 要低不少。
一般情况下,就像您说的这样,会依赖最左匹配原则筛选出最合适的索引~
5 个赞
强烈推荐用 explain 对比下这两个索引的执行计划,一目了然~
3 个赞
大佬,你这个解释比文档清楚多了。
3 个赞
主要还是文档误人
2 个赞
非常优质的文章
2 个赞
好文,学习
1 个赞
学习了
2 个赞
3 个赞
别点赞了,直接去参加 DBA 实战营搞张考试券吧~
3 个赞
学习
1 个赞
2 个赞
优质分享,点赞
2 个赞
学习
1 个赞
1 个赞
在学了
2 个赞