怎么在Mysql中使用explain分析索引的走向
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,怎么在Mysql中使用explain分析索引的走向?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。准备工作1、用户表一张,有uid ,us
千家信息网最后更新 2025年11月08日怎么在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
建表语句
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 |
看完上述内容,你们掌握怎么在Mysql中使用explain分析索引的走向的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
索引
分析
结果
名称
条件
用户
准备
字段
语句
内容
数据
方法
更多
问题
束手无策
为此
三个
原因
头像
姓名
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
倩女幽魂手游服务器
如何连接服务器数据库
网络安全工程师会不会
网络安全设备评估报告
山西公安厅网络安全管理局
云服务器非独占cpu
软件开发运营维护框架协议
南沙区软件开发好吗
oracle数据库 流程
sql导入学生成绩数据库
视频存储服务器怎么发布链接
网络安全法 智联招聘
pb连接云端数据库
计算机网络安全需要学什么语言
有名的服务器搬迁公司价格
服务器上内存怎么那么大
国家关于网络安全管理制度
win服务器安全差
网上购物数据库设计与实现有外键
我的世界服务器沙盒游戏
福州求职软件开发
可视化管理系统服务器
共享雨伞的软件开发商
网络安全大数据培训班
直播服务器设置教程
科技法庭互联网
网络安全的人怎么赚钱
软件开发报名时间
国家关于网络安全管理制度
网络技术答辩项目