怎么在Mysql中使用explain分析索引的走向
怎么在Mysql中使用explain分析索引的走向?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
准备工作
1、用户表一张,有uid ,user_name,real_name ,eamil等字段,详细见建表语句
2、在user_name字段下增加一个简单索引user_name,在email,mobile,age三个字段下增加索引complex_index
3、表引擎使用MyISAM,增加
4、准备97000条数据(具体的可以根据实际情况来定数据量,这里准备的是97000+)
5、实验工具Navcat
建表语句
DROPTABLEIFEXISTS`qz_users`;CREATETABLE`qz_users`(`uid`int(11)unsignedNOTNULLAUTO_INCREMENTCOMMENT'用户的UID',`user_name`varchar(255)COLLATEutf8mb4_unicode_ciDEFAULTNULLCOMMENT'用户名',`real_name`varchar(128)CHARACTERSETutf8DEFAULTNULLCOMMENT'用户姓名',`email`varchar(255)CHARACTERSETutf8DEFAULTNULLCOMMENT'EMAIL',`mobile`varchar(16)CHARACTERSETutf8DEFAULTNULLCOMMENT'用户手机',`password`varchar(32)CHARACTERSETutf8DEFAULTNULLCOMMENT'用户密码',`salt`varchar(16)CHARACTERSETutf8DEFAULTNULLCOMMENT'用户附加混淆码',`avatar_file`varchar(128)CHARACTERSETutf8DEFAULTNULLCOMMENT'头像文件',`sex`tinyint(1)DEFAULTNULLCOMMENT'性别',`birthday`int(10)DEFAULTNULLCOMMENT'生日',PRIMARYKEY(`uid`),KEY`user_name`(`user_name`(250)),KEY`complex_index`(`email`,`mobile`,`sex`))ENGINE=MyISAMAUTO_INCREMENT=1DEFAULTCHARSET=utf8mb4COLLATE=utf8mb4_unicode_ci;
准备的查询语句
explainselect*fromqz_userswhereuser_name="ryanhe";explainselect*fromqz_userswhereemail="x";explainselect*fromqz_userswhereemail="x"andmobile="x"andsex=1;explainselect*fromqz_userswhereemail="x"andmobile="x";explainselect*fromqz_userswhereemail="x"andsex="x";explainselect*fromqz_userswheresex="x"andmobile="x";explainselect*fromqz_userswheremobile="x"andsex="0";
结果分析
使用 user_name 条件
explainselect*fromqz_userswhereuser_name="x";
结果
分析
使用 email 条件
explainselect*fromqz_userswhereemail="x";
结果
分析
使用 email + mobile + sex条件
explainselect*fromqz_userswhereemail="x"andmobile="x"andsex=1;
结果
分析
使用 email + mobile 条件
explainselect*fromqz_userswhereemail="x"andmobile="x";
结果
分析
使用 email + sex 条件
explainselect*fromqz_userswhereemail="x"andsex="x";
结果
分析
使用 sex + mobile 条件
explainselect*fromqz_userswheresex="x"andmobile="x";
结果
分析
97185
使用 mobile+ sex 条件
explainselect*fromqz_userswheremobile="18602199680"andsex="0";
结果
分析
97185
看完上述内容,你们掌握怎么在Mysql中使用explain分析索引的走向的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。