MySQL中的联合索引(也称为复合索引或多列索引)是指在一个索引中包含两个或多个列。联合索引可以显著提高多列查询的性能,因为它允许数据库引擎在单个索引中查找多个列的值。
联合索引适用于以下场景:
WHERE column1 = 'value1' AND column2 = 'value2'
。ORDER BY column1, column2
。GROUP BY column1, column2
。(column1, column2, column3)
,以下查询会使用索引:(column1, column2, column3)
,以下查询会使用索引:BETWEEN
、<
、>
等),索引只能用于范围查询之前的列。例如,对于索引(column1, column2, column3)
,以下查询会使用索引:BETWEEN
、<
、>
等),索引只能用于范围查询之前的列。例如,对于索引(column1, column2, column3)
,以下查询会使用索引:column1
的索引:column1
的索引:假设有一个表users
,包含以下列:id
、name
、age
、city
。
创建联合索引:
CREATE INDEX idx_name_age_city ON users(name, age, city);
查询示例:
SELECT * FROM users WHERE name = 'John' AND age = 30;
这个查询会使用idx_name_age_city
索引,因为它使用了索引的最左列name
和age
。
希望这些信息对你有所帮助!如果有更多问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云