用户量多后登录时查询速度慢怎么办?

用户量多后登录时查询速度慢怎么办?对数据库操作 创建唯一索引前 查询用户表索引 SHOWINDEXFRO 测试查询用户表 看查询是否走索引 EXPLAINSELEC FROMhd userWHEREuse handsome 未走索引 type 为 all 全表扫描 当数据量多时速度极慢 给用户名字段创建唯一索引 ALTERTABLEAD 再次查询用户表索引 SHOWINDEXFRO 用户名字段唯一索引创建成功测试查询用户表 看查询是否走索引 EXPLAINSELEC

用户量多后登录时查询速度慢怎么办?

用户量多后登录时查询速度慢怎么办?

给用户名字段创建唯一索引 提升速度登录查询速度

知识点:使用MySQL给表里的某个字段建立索引
1.添加PRIMARY KEY(主键索引): ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2.添加UNIQUE(唯一索引)ALTER TABLE `table_name` ADD UNIQUE ( `column` ) 3.添加INDEX(普通索引) : 写法一: ALTER TABLE `table_name` ADD INDEX index_name ( `column` ) 写法二: CREATE INDEX index_name ON `table_name`(`column1`,`column2`,`column3`) 4.添加FULLTEXT(全文索引)ALTER TABLE `table_name` ADD FULLTEXT ( `column`) 5.添加多列索引: 写法一: ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` ) 写法二: CREATE INDEX index_name ON `table_name`(`column1`,`column2`,`column3`) SHOW INDEX FROM `table_name`;-- 查询表索引 DROP INDEX index_name ON `table_name`;-- 删除索引 

对数据库操作:

创建唯一索引前:

查询用户表索引:SHOW INDEX FROM hd_user

用户量多后登录时查询速度慢怎么办?

测试查询用户表,看查询是否走索引:EXPLAIN SELECT * FROM hd_user WHERE username = ‘handsome’

用户量多后登录时查询速度慢怎么办?

未走索引,type为all,全表扫描,当数据量多时速度极慢。

创建唯一索引后:

给用户名字段创建唯一索引:ALTER TABLE hd_user ADD UNIQUE(username)

用户量多后登录时查询速度慢怎么办?

再次查询用户表索引:SHOW INDEX FROM hd_user

用户量多后登录时查询速度慢怎么办?

用户名字段唯一索引创建成功

测试查询用户表,看查询是否走索引:EXPLAIN SELECT * FROM hd_user WHERE username = ‘handsome’

用户量多后登录时查询速度慢怎么办?

给用户名字段创建唯一索引后,type类型为const,数据量大时查询速度明显提升。

索引type级别说明:
system>const>eq_ref>ref>range>index>ALL 

这是type级别,越左边,查询速度越快。

怎么样才能让type靠左呢,就是建立索引。

很明显 实际开发当中 我们是不会只有一条数据的

只要满足以上条件,你就能达到eq_ref,当然前提是你要给name建索引,如果name连索引都没,那你肯定达不到eq_ref;

此种情况常见于唯一索引和主键索引;

比如我根据name去查,但是一个公司里面或一个学校里面叫name的可能不止一个,一般你想用这个的时候,就要确保你这个字段是唯一的,id就可以,你可以重复两个张三,但是你身份证肯定不会重复;

添加唯一键语法:alter table 表名 add constraint 索引名 unique index(列名)

检查字段是否唯一键:show index form 表名;被展示出来的皆是有唯一约束的;

非唯一性索引:对于每个索引键的查询,返回匹配的所有行(可以是0,或多个)。

假设有俩张三,我建立了非唯一索引,那么查出来就是这个级别拉,是不是很简单。

索引至少需要优化到的级别

index

range

ref 辅助索引等值查询

eq_ref 多表连接查询,连接条件是主键或者唯一键

system,const 主键或者唯一键,等值查询

优化的至少级别是range

我的学习论坛

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/214418.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午4:18
下一篇 2026年3月18日 下午4:19


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号