MySQL中的联合索引(Composite Index)是指在一个索引中包含两个或多个列。联合索引可以显著提高多列查询的效率,因为它允许数据库引擎在一个索引中同时查找多个列的值。
联合索引的类型主要取决于其列的顺序:
联合索引适用于以下场景:
假设有一个名为users
的表,包含以下列:id
, name
, age
, city
。我们希望优化以下查询:
SELECT * FROM users WHERE name = 'John' AND age = 30;
可以创建一个联合索引:
CREATE INDEX idx_name_age ON users(name, age);
原因:
解决方法:
假设有一个名为orders
的表,包含以下列:order_id
, customer_id
, order_date
。我们希望优化以下查询:
SELECT * FROM orders WHERE customer_id = 123 AND order_date BETWEEN '2023-01-01' AND '2023-12-31';
可以创建一个联合索引:
CREATE INDEX idx_customer_order_date ON orders(customer_id, order_date);
通过合理设置联合索引,可以显著提高MySQL数据库的查询性能。
领取专属 10元无门槛券
手把手带您无忧上云