概述
索引是mysql的必须要掌握的技能,同时也是提供mysql查询效率的手段。通过以下的一个实验可以理解?mysql的索引规则,同时也可以不断的来优化sql语句
实验目的
本实验是为了验证组合索引的 最左原则
说明
此实验只是为了验证实际使用索引的结果,请忽略设计的合理性
准备工作
1、用户表一张,有uid ,user_name,real_name ,eamil等字段,详细见建表语句
2、在user_name字段下增加一个简单索引user_name,在email,mobile,age三个字段下增加索引complex_index
3、表引擎使用MyISAM,增加
4、准备97000条数据(具体的可以根据实际情况来定数据量,这里准备的是97000+)
5、实验工具Navcat
建表语句
DROP TABLE IF EXISTS `qz_users`; CREATE TABLE `qz_users` ( `uid` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户的 UID', `user_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户名', `real_name` varchar(128) CHARACTER SET utf8 DEFAULT NULL COMMENT '用户姓名', `email` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT 'EMAIL', `mobile` varchar(16) CHARACTER SET utf8 DEFAULT NULL COMMENT '用户手机', `password` varchar(32) CHARACTER SET utf8 DEFAULT NULL COMMENT '用户密码', `salt` varchar(16) CHARACTER SET utf8 DEFAULT NULL COMMENT '用户附加混淆码', `avatar_file` varchar(128) CHARACTER SET utf8 DEFAULT NULL COMMENT '头像文件', `sex` tinyint(1) DEFAULT NULL COMMENT '性别', `birthday` int(10) DEFAULT NULL COMMENT '生日', PRIMARY KEY (`uid`), KEY `user_name` (`user_name`(250)), KEY `complex_index` (`email`,`mobile`,`sex`) ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
准备的查询语句
explain select * from qz_users where user_name = "ryanhe"; explain select * from qz_users where email = "x"; explain select * from qz_users where email = "x" and mobile = "x" and sex=1; explain select * from qz_users where email = "x" and mobile = "x"; explain select * from qz_users where email = "x" and sex = "x"; explain select * from qz_users where sex = "x" and mobile = "x"; explain select * from qz_users where mobile = "x" and sex = "0";
结果分析
使用 user_name 条件
explain select * from qz_users where user_name= "x";
结果
分析
是否走索引
索引名称
扫描记录数
是
user_name
1
使用 email 条件
explain select * from qz_users where email = "x";
结果
分析
是否走索引
索引名称
扫描记录数
是
complex_index
7
使用 email + mobile + sex条件
explain select * from qz_users where email = "x" and mobile = "x" and sex=1;
结果
分析
是否走索引
索引名称
扫描记录数
是
complex_index
1
使用 email + mobile 条件
explain select * from qz_users where email = "x" and mobile = "x";
结果
分析
是否走索引
索引名称
扫描记录数
是
complex_index
7
使用 email + sex 条件
explain select * from qz_users where email = "x" and sex = "x";
结果
分析
][3] 是否走索引
索引名称
扫描记录数
是
complex_index
7
使用 sex + mobile 条件
explain select * from qz_users where sex = "x" and mobile = "x";
结果
分析
是否走索引
索引名称
扫描记录数
否
97185
使用 mobile+ sex 条件
explain select * from qz_users where mobile = "18602199680" and sex = "0";
结果
分析
是否走索引
索引名称
扫描记录数
否
97185
结论
通过上面的结果可以得知,当设置了组合索引之后,合理的使用查询条件的顺序是可以避免sql语句的慢查询的
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 炉石传说T0天梯卡组推荐 2024最强卡组一览
- 英雄联盟世界赛2024门票多少钱 S14世界赛2024门票价格介绍
- lols14全球总决赛门票去哪买 s14世界赛2024门票购买方法
- dnf手游决斗场商店买什么好 决斗场商店高性价比物品购买推荐
- IGN评价《寂静岭2RE》:最痛苦却最成功的恐怖体验
- 西班牙全跨性别足球队首次亮相 将正式踢比赛
- 《怪猎荒野》新接待员超受欢迎 玩家:新老婆来了!
- 王钰《尘雾涅槃——王钰古筝独奏专辑》[320K/MP3][148.89MB]
- 王钰《尘雾涅槃——王钰古筝独奏专辑》[FLAC/分轨][298.09MB]
- 钢琴纯音名家《莫扎特系列》1CD[MP3/分轨][855.5MB]
- 伍佰.1994-浪人情歌【滚石】【WAV+CUE】
- 崔苔菁.1990-国语原声带2CD【丽歌】【WAV+CUE】
- 钟一诺.2019-SongBook歌集MQACD限量版【EVOmusic】【WAV+CUE】
- dnf手游决斗场商店买什么好 决斗场商店高性价比物品购买推荐
- 《暗喻幻想》VGC满分:不是幻想版《女神异闻录》