mysql语句速度慢

sdfgrtyu 2017-02-22 06:06:51
SELECT *   
from table201611 as o1
where GZLX='通信中断' and not exists(select * from table201611 where
GZLX<>'通信中断' and
UNIX_TIMESTAMP(STR_TO_DATE (DYSJ, '%Y%m%d %H%i%s'))
between UNIX_TIMESTAMP(STR_TO_DATE (o1.DYSJ, '%Y%m%d %H%i%s')) and UNIX_TIMESTAMP(DATE_ADD(STR_TO_DATE (o1.DYSJ, '%Y%m%d %H%i%s'),INTERVAL 24 hour))
and TZBH=o1.TZBH)

and UNIX_TIMESTAMP(STR_TO_DATE (o1.DYSJ, '%Y%m%d %H%i%s'))<> (select max(UNIX_TIMESTAMP(STR_TO_DATE (DYSJ, '%Y%m%d %H%i%s'))) from table201611 where TZBH=o1.TZBH)
and
(select GZLX from table201611 where UNIX_TIMESTAMP(STR_TO_DATE (DYSJ, '%Y%m%d %H%i%s'))>=UNIX_TIMESTAMP(DATE_ADD(STR_TO_DATE (o1.DYSJ, '%Y%m%d %H%i%s'),INTERVAL 24 hour)) and TZBH=o1.TZBH order by UNIX_TIMESTAMP(STR_TO_DATE (DYSJ, '%Y%m%d %H%i%s')) limit 1
)= o1.GZLX


group by TZBH
limit 1;

这条语句速度慢,怎么解决?
...全文
244 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2017-02-25
  • 打赏
  • 举报
回复
文本方式贴出(不要贴图!) explain select ....show index from 以供分析
rucypli 2017-02-23
  • 打赏
  • 举报
回复
首先把字段不要加函数封装 用不到索引
sdfgrtyu 2017-02-23
  • 打赏
  • 举报
回复
引用 1 楼 rucypli 的回复:
首先把字段不要加函数封装 用不到索引
时间是varchar类型的

202

社区成员

发帖
与我相关
我的任务
社区描述
非技术问题的乐园
数据库数据库架构数据库开发 技术论坛(原bbs)
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧