MySQL优化案例-阿里云开发者社区

开发者社区> 周彬彬> 正文

MySQL优化案例

简介: MySQL优化案例 1.创建索引并传输正确的数据类型 原SQL语句(没有任何修饰):SELECT uid FROM user WHERE mo=13725525225 LIMIT 0,1; 在WHERE查询条件后mo字段添加索引-->给mo字段添加索引 查看数据库字段数据结构,发现mo字段定义的是char数据类型。
+关注继续查看

MySQL优化案例

1.创建索引并传输正确的数据类型

原SQL语句(没有任何修饰):SELECT uid FROM user WHERE mo=13725525225 LIMIT 0,1;
在WHERE查询条件后mo字段添加索引-->给mo字段添加索引
查看数据库字段数据结构,发现mo字段定义的是char数据类型。而传入的类型为int型,发生了隐式转换。

通过explain查看sql的执行计划

常见的隐式转换,包括字段数据类型以及字符集定义不当导致数据类型的隐式转换。

避免在索引函数中加入函数,会导致索引失败。

2.分页查询SQL优化案例

原SQL语句:开发中常见的开发sql语句
SELECT * FROM uyer
WHERE sellerId = 765922982
AND gmt_modified >= '1970-01-01 08:00:00'
AND gmt_modified <= '2013-06-05 17:11:31'
LIMIT 255000,5000;
MySQL在进行上述翻页写法,在越往后的过程中速度越慢。原因MySQL会读取表中的前M+N数据,M越大,性能越差。
优化后SQL语句:
SELECT t1.* FROM uyer t1,
(select id from uyer sellerid=100 limit 100000,5000) t2
WHERE t1.id=t2.id;
在t表中sellerid字段添加索引,id为表的主键。

2.子查询SQL优化案例

原SQL语句:
SELECT first_name
FROM employees
WHERE emp_no IN (SELECT emp_no FROM salariy_2000 WHERE salary = 5000);
MySQL处理逻辑:遍历employees的每一条记录,代入到子查询中去查询。
改写子查询:
SELECT first_name
FROM employees emp,(SELECT emp_no FROM salariy_2000 WHERE salary = 5000) sal
WHERE emp.emp_no = sal.emp_no;

分页优化:采用高效的limit写法,来避免分页查询给数据库带来的影响。

子查询:修改子查询保证数据库不会遍历扫描每一个记录

查询需要的字段:不要使用select * 查询所有字段,只查询自己需要的数据字段。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10071 0
mysql优化一
1.show global status      可以列出MySQL服务器运行各种状态值 2.show variables            查询MySQL服务器配置信息     一、慢查询 mysql> show variables like ‘%slow%‘; +-----...
548 0
MySQL优化必须调整的10项配置
当我们被人雇来监测MySQL性能时,人们希望我们能够检视一下MySQL配置然后给出一些提高建议。许多人在事后都非常惊讶,因为我们建议他们仅仅改动几个设置,即使是这里有好几百个配置项。
744 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
12071 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13880 0
一个MySQL优化案例的初步思路
今天想起这件同事处理的一个性能优化案例,当时虽然解决了,但是还是留下了几个未解的问题,和大家一起讨论一下。 首先,这个问题是根据反馈sql响应很慢,已经开始影响前端应用的登录了。
759 0
Mysql优化策略
Mysql优化策略总的来说:1、数据库设计和表创建时就要考虑性能 2、sql的编写需要注意优化 3、分区、分表、分库 设计表的时候: 1、字段避免null值出现,null值很难查询优化且占用额外的索引空间,推荐默认数字0代替null。
1568 0
MySQL优化
MySQL优化
1217 0
+关注
15
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载