mysql索引的最左匹配原则举例详解
怎样建搜索索引?
怎样建搜索索引?
方法一:使用第三方搜索软件 这类软件有很多,比如XSearch、Everything,XSearch界面风格类似XP系统的搜索。 方法二:启用Win7的索引功能。Win7的索引功能,类似将要索引的文件的信息,收集到一个小数据库内。这样以后再搜索这部分文件中的哪个,就直接去匹配库内的信息,达到快到定位,而且搜索时可以使用单一的关键字。 一、打开Win7索引: 一般系统是默认打开索引功能的,但是很多系统优化软件,默认优化时关闭索引功能。 1、按”Win键 R“打开运行,在输入框中,输入,点”确定“按钮,打开服务。 2、在服务窗口中,找到WindowsSearch项,将服务的状态,设置为启动。 二、设置Win7索引: 1、点屏幕左下方的”开始按钮“,点击”控制面板“。 2、在”所有控制面板项“窗口中,点击”索引选项“。 3、在”索引选项“窗口中,点击”修改“按钮。 4、设置索引的位置。建议设置具体文件夹。 5、当文件夹中的文件,有了很多新建、删除、修改后,需要重建索引。
mysql联合索引最左匹配原因?
最左前缀匹配原则
在mysql建立联合索引时会遵循最左前缀匹配的原则,即最左优先,在检索数据时从联合索引的最左边开始匹配,
示例:
对列Gid、列Cid和列Sid建一个联合索引
联合索引 uni_Gid_Cid_SId 实际建立了(Gid)、(Gid,Cid)、(Gid,Cid,SId)三个索引。
插入模拟数据
查询实例:
上面这个查询语句执行时会依照最左前缀匹配原则,检索时会使用索引(Gid,Cid)进行数据匹配。
注意
索引的字段可以是任意顺序的,如:
这两个查询语句都会用到索引(Gid,Cid),mysql创建联合索引的规则是首先会对联合合索引的最左边的,也就是第一个字段Gid的数据进行排序,在第一个字段的排序基础上,然后再对后面第二个字段Cid进行排序。其实就相当于实现了类似 order by Gid Cid这样一种排序规则。
有人会疑惑第二个查询语句不符合最左前缀匹配:首先可以肯定是两个查询语句都保函索引(Gid,Cid)中的Gid、Cid两个字段,只是顺序不一样,查询条件一样,最后所查询的结果肯定是一样的。既然结果是一样的,到底以何种顺序的查询方式最好呢?此时我们可以借助mysql查询优化器explain,explain会纠正sql语句该以什么样的顺序执行效率最高,最后才生成真正的执行计划。