DBA如何不用和开发撕逼直接做SQL优化?

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

0、导读

DBA很头疼的事情就是经常要和开发撕逼,无非就是要让对方改掉某些SB的SQL写法,但是呢,得到的回复不是“业务太赶,改不了”,就是“这个业务没什么量,没事的啦”,你妹啊~~~

不怕,现在哥告诉你一个神器,再也不用去费力撕逼了!

1、怎么做到的?

开始之前呢,老叶是要先打个广告的,嘿,只有一页,忍忍哈

这个神器其实就是MySQL 5.7新增的一个功能,称为:query rewrite。上周四吴炳锡老师分享了这个话题。

下面是关于它的一个简介:

那么,query write这个plugin是怎么实现sql rewrite,达到不需要开发去改SQL的呢,且看下面2个图:


看到了吧,其实就是在Server层收到SQL后,在解析器(Parser)对SQL进行改写,再发送到优化器(Optimizer)去解析执行计划,进一步进行优化。

有了Query Rewrite功能,基本上可以避免那些常见的问题SQL了。比如分页SQL里的LIMIT从一个超大偏移量开始取值,就可以改造成JOIN语句。又或者,可以避免那种没有WHERE条件的SQL被执行。也可以避免潜在的类型转换风险。看看下面几个案例:

甚至还可以加入5.7最新支持的超时控制,再SB的SQL提交后,超过指定的时间阈值后就会自动被kill,再也不用担心一些垃圾SQL造成MySQL请求拥塞了,像下面这么玩:

说了那么多,不知道你心动了没有呢?不过,老叶好像还没告诉你怎么启用Query Rewrite Plugin吧,汗。其实不难,执行一条SQL命令就搞定了:


用法也很简单,比如:


设置下这样的一个规则,就可以把所有

SELECT ?

这样的SQL,自动改写为

SELECT ? + 1;


嗯,还是挺简单的吧?

2、完整内容

这次公开课的PPT、视频已上传到百度云盘,

链接: http://pan.baidu.com/s/1dEApr4t ,欢迎转存及转发(扫描下方二维码识别)

知数堂培训全新MySQL DBA课程第九期和Python运维开发班第三期正在招生中,扫描下方二维码加入QQ群 529671799 (加群暗号:知数堂) 获得最新信息。

关于知数堂

http://zhishuedu.com

“知数堂培训”是由资深MySQL专家叶金荣、吴炳锡联合推出专业优质在线培训课程,主要有MySQL DBA实战优化和Python运维开发两个课程,是业内最有良心、最有品质的培训课程。

完整PPT内容见下面


最后再次感谢大家对知数堂培训的支持和关注!



文章转自老叶茶馆公众号,原文链接:https://mp.weixin.qq.com/s/JJ9ZS4MV4blAoWT9EmmsGw

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
19天前
|
SQL 安全 UED
通义灵码在DBA日常SQL优化中的使用分享
通义灵码在DBA日常SQL优化中的使用分享
61 1
通义灵码在DBA日常SQL优化中的使用分享
|
27天前
|
SQL 缓存 监控
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
本文详细解析了数据库、缓存、异步处理和Web性能优化四大策略,系统性能优化必知必备,大厂面试高频。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
|
13天前
|
SQL 缓存 数据库
SQL慢查询优化策略
在数据库管理和应用开发中,SQL查询的性能优化至关重要。慢查询优化不仅可以提高应用的响应速度,还能降低服务器负载,提升用户体验。本文将详细介绍针对SQL慢查询的优化策略。
|
13天前
|
SQL 存储 BI
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
|
13天前
|
SQL 数据库
gbase 8a 数据库 SQL优化案例-关联顺序优化
gbase 8a 数据库 SQL优化案例-关联顺序优化
|
20天前
|
SQL 数据库 UED
SQL性能提升秘籍:5步优化法与10个实战案例
在数据库管理和应用开发中,SQL查询的性能优化至关重要。高效的SQL查询不仅可以提高应用的响应速度,还能降低服务器负载,提升用户体验。本文将分享SQL优化的五大步骤和十个实战案例,帮助构建高效、稳定的数据库应用。
34 3
|
20天前
|
SQL 缓存 监控
SQL性能提升指南:五大优化策略与十个实战案例
在数据库性能优化的世界里,SQL优化是提升查询效率的关键。一个高效的SQL查询可以显著减少数据库的负载,提高应用响应速度,甚至影响整个系统的稳定性和扩展性。本文将介绍SQL优化的五大步骤,并结合十个实战案例,为你提供一份详尽的性能提升指南。
42 0
|
SQL 存储
Sql开发技巧
原文:Sql开发技巧 简介 本文主要介绍下述几个技巧: 使用Row_Number分页 事务 根据条件刷选记录的技巧 分页 主要是使用了Row_Number()这个函数。一般如下: declare @PageSize int; declare @StartIndex int; ...
878 0
|
SQL 缓存 数据库
SQL开发技巧(二)
原文:SQL开发技巧(二) 本系列文章旨在收集在开发过程中遇到的一些常用的SQL语句,然后整理归档,本系列文章基于SQLServer系列,且版本为SQLServer2005及以上…… 文章系列目录 SQL开发技巧(一) SQL开发技巧(二) 本文内容简介 这篇文章主要介绍以...
1051 0
|
3月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")

热门文章

最新文章