MySQL最左前綴匹配是一種優化查詢過程的技術,該方法主要針對索引進行優化。
最左前綴匹配指的是在MySQL中使用復合索引的時候,按照索引字段順序從左到右進行匹配。這樣可以減少索引的掃描次數,從而提高查詢效率。
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL, `age` int(11) NOT NULL, `address` varchar(100) NOT NULL, PRIMARY KEY (`id`), KEY `idx_user` (`name`,`age`,`address`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; SELECT * FROM user WHERE name='張三'; // 使用索引 idx_user 進行查詢,age 和 address 字段不會進行匹配 SELECT * FROM user WHERE name='張三' and age=18; // 使用索引 idx_user 進行查詢,并且匹配了前兩個字段 SELECT * FROM user WHERE name='張三' and address='北京市'; // 索引 idx_user 不會生效,需要添加 name 字段 SELECT * FROM user WHERE age=18 and address='北京市'; // 索引 idx_user 不會生效,需要添加 name 字段
以上示例中的 idx_user 是一個復合索引,按照 name、age、address 的順序建立。在不同的查詢條件下,MySQL都能夠按照最左前綴匹配的原則,優化查詢過程,提高查詢效率。