💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
> ### 回表、覆盖索引、最左前缀、联合索引、索引下推、索引合并 - [回表、覆盖索引、联合索引、最左前缀 ## 匹配原则、索引下推](https://blog.csdn.net/songhaixing2/article/details/114102685) > 覆盖索引 - select id from user where name\="hai"; - 查询的字段都在组合索引里(主键可以不在) > 索引下推 - 减少回表的次数:看到`Extra`一列里`Using index condition` > 索引合并 - sort_union(title,content); 假设有一个表 `example_table` 包含列 A、B、C,其中 A 和 B 组成了一个组合索引,而 C 有一个单列索引。我们来看一个使用索引合并的简单示例。 ``` -- 创建表并插入一些数据 CREATE TABLE example_table ( A INT, B INT, C INT, INDEX idx_ab (A, B), INDEX idx_c (C) ); INSERT INTO example_table (A, B, C) VALUES (1, 10, 100), (2, 20, 200), (3, 30, 300), (4, 40, 400); -- 查询使用索引合并的例子 EXPLAIN SELECT * FROM example_table WHERE A = 2 AND C = 200; ``` 在 `EXPLAIN` 输出中,你可能会看到 `Using intersect(A=idx_ab, C=idx_c)` 或类似的信息,表示 MySQL 正在使用索引合并。这表示 MySQL 在索引 `idx_ab`(组合索引)和索引 `idx_c`(单列索引)上执行两个独立的索引扫描,然后通过交集操作(intersect)来获取满足整个查询条件的结果。