记一次慢查询优化sql】的更多相关文章

sql语句优化(慢查询日志) 最近,旧系统向新系统迁移工程刚刚结束.开发完成后,测试阶段也是好好休息了一把.接到一个需求,由于内部员工使用的网站部分功能加载时间很长,所以需要去优化系统的一些功能.大致流程如下: 部分网页查询较慢,考虑在数据库中开启慢查询,查看慢查询sql日志(写慢sql开启命令,各命令参数) 慢查询是mysql提供的,一种用来监控执行时间超过阈值的sql语句.本质上是一种日志记录.可以将日志记录到文件种,也支持将日志记录到表中.但不需要查看慢查询sql的时候不建议开启,会对性能…
一.问题背景 现网出现慢查询,在500万数量级的情况下,单表查询速度在30多秒,需要对sql进行优化,sql如下: 我在测试环境构造了500万条数据,模拟了这个慢查询. 简单来说,就是查询一定条件下,都有哪些用户的.很简单的sql,可以看到,查询耗时为37秒. 说一下app_account字段的分布情况,随机生成了5000个不同的随机数,然后分布到了这500万条数据里,平均来说,每个app_account都会有1000个是重复的值,种类共有5000个. 二.看执行计划 可以看到,group by…
1.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num=02.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描.优化器将无法通过索引来确定将要命中的行数,因此需要搜索该表的所有行.3.应尽量避免在 whe…
原来的sql是这样写的 SELECT d.ONSALE_BARCODE, d.ONSALE_NAME, c.ONSALE_ID, CAST( , ) ) AS CUSTOMARY_PRICE, CAST( , ) ) AS CONSTANT_PRICE, CAST( , ) ) AS RETAIL_ITEM_PRICE, CAST( , ) ) AS RETAIL_PACKAGE_PRICE FROM yzd_retailer a LEFT JOIN sur_main b ON a.USER_I…
概述 在一次调优一个项目组件的性能问题时,发现SQL的设计真的是非常的重要,所以写一篇博文来记录总结一下. 环境介绍 这个项目组件是一个Window服务,内部在使用轮循机会在处理一个事件表中的事件,将其转换在对应的任务.性能问题在于,统计下来,这个服务一秒的时间内只能处理完成12条左右.这个性能是非常的差. 我使用的SQL版本是SQL 2012,机器是CPU I7-2670,内存16G,SSD硬盘. 在这个数据库中有一个表的数据量大概30万条数据,并不是很多, 事先没有建立任何索引,只有一个主键…
前言 好好学习,天天向上. 正文 好像也是一个不难的问题,刚视频里看到的,就记一下吧. 下面是表中原始的数据结构,做了一个倒叙排序: select * from Employee order by Salary desc 首先来看一下如何取Salary第二的记录. --获取salary排行第二的人的信息 select top 1 * from Employee where Salary < (select max(salary) from Employee ) order by Salary d…
 什么是sql注入攻击?  所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令.在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击. 1.判断注入点是否有效 sqlmap -u "http://xxx.xxx.com/product.php?type_id=59" 2,查找数据库 sqlmap -u "http://xxx.x…
一 简介:今天我们来探讨下SQL语句的优化基础 二 基础规则: 一 通用: 1 避免索引字段使用函数     2 避免发生隐式转换     3 order by字段需要走索引,否则会发生filesort     4 当需要得到的数据量占用表的数据量很大比例的时候,数据库可能不会采用索引而选择全表扫描     5 复合索引要注意最左原则     6 尽量用union all 代替union 7 利用 mysql 5.7的虚拟列特性 8 利用临时表防范汇总临时结果 二 多表:    1 对于子查询要…
概述 最近开发说某个接口跑的很慢,排查了下发现其中一条sql,数据量不大,但居然要跑451s,下面简单记录一下优化的过程. 问题sql SELECT l.location_gid ENUMVALUE, l.location_name DISPVALUE FROM servprov s, location l WHERE s.domain_name = 'FSL2' AND s.servprov_gid = l.location_gid AND EXISTS (SELECT 1 FROM fsl2…
开心一刻 今天,朋友气冲冲的走到我面前 朋友:我不是谈了个女朋友,谈了三个月嘛,昨天我偷看她手机,你猜她给我备注什么 我:备注什么? 朋友:舔狗 2 号! 我一听,气就上来了,说道:走,找她去,这婆娘确实该骂,臭不要脸的 朋友拉住我,劝到:哎哎,不是去骂她,是找她理论,叫她改成舔狗1号,是我先来的! 我:滚,我不认识你 需求背景 环境  MySQL 版本:8.0.27 有四张表:业务信息表.任务表.业务任务表.任务执行日志表 CREATE TABLE `t_business` ( `busine…