例如,如果大家有一个用户表,需要经常根据用户的用户名和城市来查询,那么在建立索引时,应该先将用户名作为索引的前缀,然后是城市,而不是反过来。因为如果大家将城市放在用户名前面,那么当大家查询城市时,数据库系统就需要扫描整个索引树,而无法利用最左匹配的特性,从而影响查询效率。
CREATE TABLE user ( id INT(11) NOT NULL AUTO_INCREMENT, username VARCHAR(50) NOT NULL, city VARCHAR(50) NOT NULL, PRIMARY KEY (id), INDEX idx_username_city (username, city) );
在上述代码中,大家通过创建一个名为idx_username_city的索引来优化查询效率。这个索引首先按照用户名排序,然后再按照城市排序。
总之,在使用MySQL数据库时,要注意将最频繁被查询的属性放在索引的最左边,以此来利用最左匹配的特性,提高查询效率。