Mysql数据库基本操作(十五)Mysql优化(2)性能优化

本文探讨了MySQL数据库的性能优化,包括使用trace跟踪SQL优化器,详细讲解了索引优化的注意事项如最左前缀法则,以及SQL优化技巧,如优化insert语句、order by语句、group by语句和子查询,最后提到了limit优化方法,旨在提升数据库性能。
摘要由CSDN通过智能技术生成

上一篇:
Mysql数据库基本操作(十五)Mysql优化(1)性能分析


Mysql的优化手段主要分为索引优化和SQL优化,在学习这两种优化手段之前,我们先来了解一下Mysql内部的自动优化,使用trace对sql优化器进行跟踪。

1,使用trace跟踪sql优化器

1,在介绍怎么使用trace之前先介绍一下mysql的整体架构
在这里插入图片描述
可以看到,在这个架构中存在一个优化器,这个优化器会对我们写的sql进行微调,使其在执行过程中更加符合mysql架构,获得更高的效率,我们可以使用trace语句跟踪mysql内部到底是怎样对这些sql进行微调的,下面来介绍trace的使用。
2,打开trace,设置格式为.JSON,并设置trace最大能够使用的内存大小,避免解析过程中因为默认内存过小而不能够完整展示。

set optimizer_trace="enabled=on",end_markers_in_json=on;
set optimizer_trace_max_mem_size=1000000;

3,随便执行一句sql,例如

select * from user a,user_role b,role c where a.uid=b.uid and b.rid =c.rid;

(该数据库中的数据在上一篇博客中有提供)
4,查看mysql自带的数据库information_schema中的数据表optimizer_trace,以json格式返回mysql优化器优化上一条语句的过程。

select * from information_schema.optimizer_trace \G;

注意:要在命令行界面执行该条语句,因为在navicat中识别不了\G。
在这里插入图片描述
这里仅仅是介绍了如何返回这个json格式的结果,至于这个结果怎么读取,感兴趣的朋友可以继续深入了解。

2,索引优化

2.1 准备数据

create table tb_seller(
sellerid varchar (100) ,name  varchar (100) ,
nickname  varchar (50),password varchar (60),status varchar (1),address varchar (100) ,createtime datetime ,primary key (sellerid)
);
insert into tb_seller(sellerid, name, nickname, password,status,address,createtime) values ('oppo','oppo科技有限公司','oppo官方旗舰店', 'e10adc3949ba59abbe56e057f20f883e','0','北京市', '2088-01-01 12:00:00');
insert into tb_seller(sellerid, name, nickname, password,status,address,createtime) values  ('ourpalm','掌趣科技股份有限公司','掌趣小店','e10adc3949ba59abbe56e057f20f883e' , '1','北京市','2088-01-01 12:00:00');
insert into tb_seller(sellerid, name, nickname, password,status,address,createtime) values ( 'qiandu' , '千度科技','千度小店' , ' e10adc3 949ba59abbe56e057f20f883e' , '2', '北京市', '2088-01-0l 12:00:00') ;
insert into tb_seller(sellerid, name, nickname, password,status,address,createtime) values
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值