我的SQL(带有子查询)需要很长时间(将近24小时)。使用子查询对性能不好?

我的表如下

mysql> show create table eventnew;

CREATE TABLE `eventnew` (

`id` int(50) NOT NULL AUTO_INCREMENT,

`date` datetime DEFAULT NULL,

`src_ip` int(10) unsigned DEFAULT NULL,

`src_port` int(10) unsigned DEFAULT NULL,

`dst_ip` int(10) unsigned DEFAULT NULL,

`dst_port` int(10) unsigned DEFAULT NULL,

`repo_ip` varchar(50) DEFAULT NULL,

`link` varchar(50) DEFAULT NULL,

`binary_hash` varchar(50) DEFAULT NULL,

`sensor_id` varchar(50) DEFAULT NULL,

`repox_ip` int(10) unsigned DEFAULT NULL,

`flags` varchar(50) DEFAULT NULL,

`shellcode` varchar(1000) DEFAULT NULL,

PRIMARY KEY (`id`),

KEY `date` (`date`),

KEY `sensor_id` (`sensor_id`),

KEY `src_ip` (`src_ip`)

) ENGINE=MyISAM AUTO_INCREMENT=883278 DEFAULT CHARSET=latin1我的SQL如下所示:

SELECT COUNT( DISTINCT binary_hash ) AS cnt

FROM eventnew

WHERE DATE >= '2010-10-16'

AND DATE < '2010-10-17'

AND binary_hash NOT

IN (

SELECT DISTINCT binary_hash

FROM eventnew

WHERE DATE < '2010-10-16'

AND binary_hash IS NOT NULL

)以下是运行结果EXPLAIN:

+----+--------------------+----------+-------+---------------+------+---------+------+--------+-------------+

| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |

+----+--------------------+----------+-------+---------------+------+---------+------+--------+-------------+

| 1 | PRIMARY | eventnew | range | date | date | 9 | NULL | 14296 | Using where |

| 2 | DEPENDENT SUBQUERY | eventnew | range | date | date | 9 | NULL | 384974 | Using where |

+----+--------------------+----------+-------+---------------+------+---------+------+--------+-------------+

mysql 子查询 性能_mysql子查询性能相关推荐

  1. mysql 子查询分页_MySQL子查询,正则表达式,索引,分页,三大范式

    子查询 可以将子查询放在许多的 SQL 子句中,包括: • WHERE 子句• HAVING 子句 • FROM 子句 使用子查询的原则 • 子查询放在圆括号中. • 将子查询放在比较条件的右边. • ...

  2. mysql查询最大值_MySQL 子查询——查询最大值

    子查询指将一个查询语句嵌套在另一个查询语句中.子查询可以在 SELECT.UPDATE 和 DELETE 语句中使用,而且可以进行多层嵌套.在实际开发时,子查询经常出现在 WHERE 子句中.子查询在 ...

  3. mysql 关联查询慢_mysql慢查询语句分析总结

    我们经常会接触到MySQL,也经常会遇到一些MySQL的性能问题.我们可以借助慢查询日志和explain命令初步分析出SQL语句存在的性能问题 通过SHOW FULL PROCESSLIST查看问题 ...

  4. mysql 高级查询词_Mysql高级查询语句

    Exists子查询 Exists的特点 1.在执行create或drop语句前,可以使用exists语句来判断数据库对象是否存在,返回值是true或false drop table if exists ...

  5. mysql 慢日志 作用_MySQL慢查询日志的作用和开启

    前言 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中.lon ...

  6. mysql 查询重写_mysql 学习 - 查询重写规则

    条件化简 我们编写的查询语句的搜索条件本质上是一个表达式,这些表达式可能比较繁杂,或者不能高效的执行,MySQL的查询优化器会为我们简化这些表达式. 移除不必要的括号 有时候表达式里有许多无用的括号, ...

  7. mysql 前30秒_mysql – 简单查询需要15-30秒

    以下查询非常简单.它从消息表中选择最后20条记录,以便在分页方案中使用.第一次运行此查询时,需要15到30秒.后续运行只需不到一秒钟(我预计会涉及一些缓存).我试图确定为什么第一次这么长时间. 这是查 ...

  8. mysql慢查询单位_MySQL慢查询

    MySQL的慢查询,全名是慢查询日志,是MySQL提供的一种日志记录,用来记录在MySQL中响应时间超过阀值的语句.具体环境中,运行时间超过long_query_time值的SQL语句,则会被记录到慢 ...

  9. mysql数据库查询笔记_mysql笔记: 查询

    mysql笔记: 查询 查询准备 CREATE DATABASE search; use search; # 学生表(student):学号.姓名.性别.出生日期.班级 CREATE TABLE st ...

  10. c mysql清理日志文件_MySQL 一般查询日志或者慢查询日志历史数据的清理

    general log&slow query log 对于MySQL的一般查询日志和慢查询日志,开启比较简单,其中公用的一个参数是log_output,log_output控制着慢查询和一般查 ...

最新文章

  1. 多线程threading
  2. 基于OpenCV进行相机标定
  3. Spring Boot Spring MVC异常处理原理分析
  4. Mysql数据库安全性问题【防注入】
  5. javascript中的Date类型
  6. 遥感数字图像处理 初体验
  7. php中的$_get参数带分号,PHP中GET传参,各参数之间使用分号(;)符号进行分隔。...
  8. 关于分卷压缩文件打不开的问题
  9. 关于语雀知识库的二三事
  10. 手机测试移动网速的软件,移动测试网速(中国移动在线测速)
  11. linux服务上实现web在线编辑,利用 ONLYOFFICE 将在线文档编辑器集成到 Python Web 应用程序中 | Linux 中国...
  12. 线性可变位移传感器行业调研报告 - 市场现状分析与发展前景预测
  13. 电脑小知识:最常用的10个电脑技巧
  14. ubuntu16.04无线网卡rtl8723be驱动问题
  15. 我的面试经历(2013.5)
  16. 如何展示舞台灯光秀的艺术表现力
  17. 什么是电商GMV(成交总额)?
  18. 【Python】——多项式
  19. python-爬取糗事百科段子
  20. 网站锚点执行平滑滚动

热门文章

  1. vue ,solt 插值组件新内容
  2. Selenium2.41.0—获取动态资源 (转)
  3. 深度解析服务器需要虚拟化的两大条件
  4. 利用iptables实现SNAT及DNAT
  5. HDU4530:小Q系列故事——大笨钟
  6. Lua概念定义及相关资料
  7. struts2.0中struts.xml配置文件详解
  8. c++不好可以学qt吗_学美容好不好,学美容有前途吗?
  9. C++如何生成随机数
  10. 米莱迪机器人加物理攻击_自拍、航拍、运动拍“ALL IN ONE”,臻迪PowerEgg X开启全新未来...