索引合并是mysql底层为我们提供的智能算法。了解索引合并的算法,有助于我们更好的创建索引。
索引合并是通过多个range类型的扫描并且合并它们的结果集来检索行的。仅合并来自单个表的索引扫描,而不是跨多个表的索引扫描。合并会产生底层扫描的三种形式:unions(合并)、intersections(交集)、unions-of-intersections(先取交集再合并)。
以下四个例子会产生索引合并:
1、SELECT * FROM tbl_name WHERE key1 = 10 OR key2 = 20;
2、SELECT * FROM tbl_name WHERE (key1 = 10 OR key2 = 20) AND non_key = 30;
3、SELECT * FROM t1, t2 WHERE (t1.key1 IN (1,2) OR t1.key2 LIKE 'value%') AND t2.key1 = t1.some_col;
4、SELECT * FROM t1, t2 WHERE t1.key1 = 1 AND (t2.key1 = t1.some

索引合并&spm=1001.2101.3001.5002&articleId=118990776&d=1&t=3&u=21ecac752ffd4ee7982827a60b35b9f6)
1074

被折叠的 条评论
为什么被折叠?



