案例2:SQL优化 | 学习笔记

简介: 简介:快速学习案例2:SQL优化

开发者学堂课程【云数据库优化十大典型案例:案例2:SQL优化】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/597/detail/8567


案例2:SQL优化


内容简介

一.分页优化案例

二.子查询优化案例

三.SQL 优化最佳实践


一.分页优化案例

Query|51|Sending data |

select *

from buyer

where sellerId =765922982

and gmt_modified>='1970-01-01 08:00:00'

and gmt_modified<='2013-06-05 17:11:31'

Limit255000,5000;

普通写法:

select * from buyer where sellerid=100 limit 100000,5000

普通 limit M,N的翻页写法,在越往后翻页的过程中速度越慢,原因 mysql 会读取表中的前M+N条数据,M越大,性能就越差。

优化写法:

select t1.* from buyer t1,

(select id from buyer sellerid=100 limit 100000,5000)t2

where t1.id=t2.id;

查出ID,然后和主表做关联。

注意:

需要在t表的 sellerid 字段上创建索引,id为表的主键

create index ind_sellerid on buyer(sellerid);

原始语句:

select id,…

from buyer

where sellerId = 765922982

and gmt_modified > = '1970-01-01 08:00:00'

and gmt_modified < = '2013-06-05 17:11:31'

limit 255000,5000 ; 

优化后语句:

select t2.*

from (select id

from buyer where sellerId = 765922982

and gmt_modified > = '1970-01-01 08:00:00'

and gmt_modified < = '2013-06-05 17:11:31'

limit 255000,5000 ) t1,

buyer t2

where t1.id=t2.id 

查询时间:60S→0.2S


二.子查询优化案例

典型子查询

SELECT first_name

FROM employees

WHERE emp_no IN

(SELECT emp_no FROM salaries_2000 WHERE salary= 5000);

MySQL的处理逻辑是遍历employees表中的每一条记录,代入到子查询中中去

改写子查询

SELECT first_name

FROM employees emp ,

(SELECT emp_no FROM salaries_2000 WHERE salary=5000) sal

WHERE emp.emp_no=sal.emp_no;

执行时间:1200S→0.1S


三.SQL优化最佳实践

1.分页优化

采用高效的 Limit 写法,避免分页查询给数据库带来性能影响

2.子查询优化

子查询在5.1,5.5版本中都存在较大风险,将子查询改为关联使用 Mysql 5.6的版本,可以避免麻烦的子查询改写

3.查询需要的字段

避免用 SELECT* 查询所有字段数据,只查询需要的字段数据

相关文章
|
1月前
|
SQL 缓存 监控
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
本文详细解析了数据库、缓存、异步处理和Web性能优化四大策略,系统性能优化必知必备,大厂面试高频。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
|
17天前
|
SQL 缓存 数据库
SQL慢查询优化策略
在数据库管理和应用开发中,SQL查询的性能优化至关重要。慢查询优化不仅可以提高应用的响应速度,还能降低服务器负载,提升用户体验。本文将详细介绍针对SQL慢查询的优化策略。
|
17天前
|
SQL 存储 BI
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
|
17天前
|
SQL 数据库
gbase 8a 数据库 SQL优化案例-关联顺序优化
gbase 8a 数据库 SQL优化案例-关联顺序优化
|
24天前
|
SQL 数据库 UED
SQL性能提升秘籍:5步优化法与10个实战案例
在数据库管理和应用开发中,SQL查询的性能优化至关重要。高效的SQL查询不仅可以提高应用的响应速度,还能降低服务器负载,提升用户体验。本文将分享SQL优化的五大步骤和十个实战案例,帮助构建高效、稳定的数据库应用。
40 3
|
1月前
|
SQL 存储 缓存
如何优化SQL查询性能?
【10月更文挑战第28天】如何优化SQL查询性能?
102 10
|
1月前
|
SQL 存储 缓存
SQL Server 数据太多如何优化
11种优化方案供你参考,优化 SQL Server 数据库性能得从多个方面着手,包括硬件配置、数据库结构、查询优化、索引管理、分区分表、并行处理等。通过合理的索引、查询优化、数据分区等技术,可以在数据量增大时保持较好的性能。同时,定期进行数据库维护和清理,保证数据库高效运行。
|
24天前
|
SQL 缓存 监控
SQL性能提升指南:五大优化策略与十个实战案例
在数据库性能优化的世界里,SQL优化是提升查询效率的关键。一个高效的SQL查询可以显著减少数据库的负载,提高应用响应速度,甚至影响整个系统的稳定性和扩展性。本文将介绍SQL优化的五大步骤,并结合十个实战案例,为你提供一份详尽的性能提升指南。
44 0
|
2月前
|
SQL 资源调度 分布式计算
如何让SQL跑快一点?(优化指南)
这篇文章主要探讨了如何在阿里云MaxCompute(原ODPS)平台上对SQL任务进行优化,特别是针对大数据处理和分析场景下的性能优化。
|
2月前
|
SQL 监控 数据库
慢SQL对数据库写入性能的影响及优化技巧
在数据库管理系统中,慢SQL(即执行缓慢的SQL语句)不仅会影响查询性能,还可能对数据库的写入性能产生显著的不利影响