c 用到了,索引下推

我们可以创建一个示例表 t 并插入一些测试数据来验证索引的使用情况。以下是创建表、添加索引和插入测试数据的 SQL 语句:

创建表和添加索引

CREATE TABLE t (
    id INT AUTO_INCREMENT PRIMARY KEY,
    a INT,
    b INT,
    c INT,
    d VARCHAR(255)
);

-- 创建联合索引 (a, b, c)
CREATE INDEX idx_abc ON t (a, b, c);

插入测试数据

为了测试不同的查询条件,我们可以插入一些具有不同值的测试数据:

INSERT INTO t (a, b, c, d) VALUES
(1, 1, 1, 'row1'),
(1, 2, 1, 'row2'),
(1, 3, 1, 'row3'),
(2, 1, 1, 'row4'),
(2, 2, 2, 'row5'),
(3, 3, 3, 'row6'),
(1, 2, 2, 'row7'),
(1, 4, 1, 'row8'),
(1, 5, 1, 'row9'),
(2, 2, 3, 'row10');

执行查询和查看 EXPLAIN 结果

使用 EXPLAIN 查看查询的执行计划:

EXPLAIN SELECT * FROM t WHERE a = 1 AND b > 1 AND c = 1;

Untitled

总结

通过上述步骤,我们创建了一个示例表 t,插入了一些测试数据,并验证了联合索引 (a, b, c) 在查询 a = 1 AND b > 1 AND c = 1 中的使用情况。你可以根据需要调整测试数据和查询条件,以更好地理解和优化索引的使用。