-
请教一个mysql 的sql优化10
sql查询数据量大概是20W左右,必要的地方已经创建了索引了,但是执行时间还是在30秒,现在要优化到3秒左右,没有具体办法了
sql查询语句
SELECT v.AnalyzerDATVersion as VER_X,count(distinct v.CLIENT_ID) as NUMBER,round(count(distinct v.CLIENT_ID)/t.TOTAL*100,2) as RATE from VIRUS_EVENTS_INFO as v left join VIRUS_ComputerProperties as p on (p.CLIENT_ID=v.CLIENT_ID and p.SRC_SYSTEM=v.SRC_SYSTEM) left join VIRUS_COMPUTER_ACCOUNT as ca on (ca.CLIENT_ID=p.CLIENT_ID and ca.SRC_SYSTEM=p.SRC_SYSTEM) left join COMM_ACCOUNT as a on a.EMPLOYEE_NO=ca.EMPLOYEE_NO inner join (select count(*) as TOTAL from VIRUS_ComputerProperties v WHERE v.SRC_SYSTEM='Mcafee' ) as t WHERE v.SRC_SYSTEM='Mcafee' group by VER_X UNION SELECT "9999999999" AS VER_X,count(distinct temp.INFECTED_MAC) as NUMBER, round(count(distinct temp.INFECTED_MAC)/t.TOTAL*100,2) as RATE from (select max(VIRUS_LIB_VER_X+0) as VIRUS_LIB_VER_X,INFECTED_MAC,temp.EMPLOYEE_NO as EMPLOYEE_NO, temp.SRC_SYSTEM as SRC_SYSTEM from SOC_VIRUS_AUDIT_INFO temp left join COMM_EMPLOYEE em on (temp.employee_no=em.employee_no) where temp.INFECTED_MAC!='' and temp.INFECTED_MAC is not null AND temp.SRC_SYSTEM='Mcafee' group by INFECTED_MAC) temp left join COMM_EMPLOYEE em on (temp.employee_no=em.employee_no) inner join (select count(distinct INFECTED_MAC) AS TOTAL from SOC_VIRUS_AUDIT_INFO temp left join COMM_EMPLOYEE em on (temp.employee_no=em.employee_no) where temp.INFECTED_MAC!='' and temp.INFECTED_MAC is not null AND temp.SRC_SYSTEM='Mcafee' ) t where temp.INFECTED_MAC!='' and temp.INFECTED_MAC is not null AND temp.SRC_SYSTEM='Mcafee' group by "9999999999" order by VER_X+0 desc ,RATE+0 desc limit 14
其实主要费时在 UNION 的前半段,后半段的执行时间在0.07秒左右,所以主要是前半段问题,VIRUS_COMPUTER_ACCOUNT 是个视图 表
COMM_ACCOUNT ,VIRUS_EVENTS_INFO VIRUS_ComputerProperties 中的on字段后用到的条件字段都加了索引,求教一下看哪里还需要继续深入优化的。
2010年2月23日 11:01
目前还没有答案
相关推荐
1. SQL优化 1 1.1. 优化实战 1 1.1.1. 策略1.尽量全值匹配 1 1.1.2. 策略2.最佳左前缀法则 2 1.1.3. 策略3.不在索引列上做任何操作 2 1.1.4. 策略4.范围条件放最后 3 1.1.5. 策略5.覆盖索引尽量用 3 1.1.6. 策略6.不...
MySQL性能优化 SQL优化方法技巧
MySQL数据库优化SQL篇.ppt,适用于企业级项目开发
2023最新mysql的sql语句优化方法技巧面试题总结.docx2023最新mysql的sql语句优化方法技巧面试题总结.docx2023最新mysql的sql语句优化方法技巧面试题总结.docx2023最新mysql的sql语句优化方法技巧面试题总结.docx2023...
从Oracle的SQL优化到MySQL的SQL优化
MySQL SQL优化的小册子。 对优化这块重点阐述了相关原理与技术手段。
基于Mysql数据库的SQL优化 亲测
本书希望能够通过一步步详细介绍SQL优化的方法,帮助读者分 析和调优有问题的SQL语句。 主要内容 ● 找出收集和诊断问题必备的分析命令 ● 创建MySQL索引来改进查询性能 ● 掌握MySQL的查询执行计划 ● 找...
sql查询优化 提高MySQL数据库查询效率的几个技巧
mysql优化从以下几个方面介绍 mysql的架构 索引优化分析 查询截取分析 mysql锁机制 主从复制
MySQL架构执行与SQL性能优化-MySQL高并发详解课程,课程的目标简单明确,核心就是MySQL的性能优化与高并发。课程内容进行了精华的浓缩,有四大内容主旨,MySQL架构与执行流程,MySQL索引原理详解,MySQL事务原理与...
2.3两个常用的优化技巧 2.4常用SQL优化 2.5常用SQL技巧 3.优化数据库对象 3.1优化表的数据类型逆规范化 3.2提高查询速度 4.锁问题 4.1MyISQM表锁 4.2InnoDB锁问题 5.优化MySQL Server 5.1MySQL体系结构...
mysql的优化 数据库(表)设计合理 我们的表设计要符合3NF 3范式(规范的模式) , 有时我们需要适当的逆范式 sql语句的优化(索引,常用小技巧.) 数据的配置(缓存设大) 适当硬件配置和操作系统 (读写分离.)
Oracle Sql语句转换成Mysql Sql语句java 源码,非常简单,只要给定源oracle sql语句地址,和生成目标文件地址运行即可。
2016年 的视频,适合有一定数据库经验的开发者,高级开发者没必要看了
详细介绍慢查询日志及示例演示,MySQL查询优化器介绍及特定SQL的查询优化等 1.获取有性能问题的SQL的三种方法 2.慢查询日志概述 3.慢查询日志实例 4.实时获取性能问题SQL 5.SQL的解析预处理及生成的执行计划 6.如何...
mysql sqlapi代码示例,sqlapi链接各类数据库mysql、db2、oracle、sqlserver、sqllite等等
IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考虑,当然,也是收效最明显的优化手段。...
sql常用优化手段
MYSQL与SQL优化,自己编写MYSQL与SQL优化.ppt MYSQL与SQL优化.ppt