美文网首页
一次mysql问题查询

一次mysql问题查询

作者: 吴世浩 | 来源:发表于2017-05-20 00:28 被阅读1354次

一、好言

目前这个年龄真的很尴尬 不够成熟也不够幼稚 没有能力却有野心


二、背景

昨天上线,但是在准生产上,出现了问题,这个问题在测试环境出现过,但是我把数据库四千多万的数据清理了,然后就成功了,但是现在在预发布环境又出现了这个问题,不得不去找到确定的原因,每次执行sql都是被中断。所以这个问题也让我记住,测试环境的大量数据也是对性能很好的测试。有问题就要定位。因为当时查询到的是查询超时造成的,因此就是因为数据量多,所以我就删除了测试数据,但是生产能删除吗?NO!!!下面看问题和解决。


三:问题

ERROR [8080-test] 2017-05-17 17:59:55.580 [taskExecutor-
9]org.springframework.aop.interceptor.SimpleAsyncUncaughtExceptio
nHandler - Unexpected error occurred 
invoking async method 'public void 
com.mouse.moon.service.TestRegisterService.test(com.mouse.moon.
model.po.Person)'.
org.springframework.jdbc.UncategorizedSQLException: 
### Error querying database.  Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLQueryInterruptedException: 
Query execution was interrupted
### The error may exist in URL [jar:file:/mouse/tools//8080-
test/lib/mouse-SNAPSHOT-1705171633.jar!/mapper/person.xml]
### The error may involve com.mouse.moon.mapper.PersonDAO.selectPersonIfo-Inline
### The error occurred while setting parameters
### SQL: select id, column1, column2, column3, column4, column5,
 create_time,update_time from 
table_name t1 WHERE t1.column2=? and t2.column3=? and t3.column4=? 
### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLQueryInterruptedException: 
Query execution was 

interrupted
; uncategorized SQLException for SQL []; SQL state [70100]; error 
code [1317]; Query execution 
wasinterrupted; nested exception is 
 com.mysql.jdbc.exceptions.jdbc4.MySQLQueryInterruptedException:
Query
execution was interrupted

搜了下错误码,给出如下结果

错误:1317 SQLSTATE: 70100 (ER_QUERY_INTERRUPTED)

消息:查询执行被中断。

在代码执行时候,捕捉进程结果

select * from information_schema.processlist where info is not null 
limit 0,100;
sql_process-one.png sql_process-two.png

在进行查询的时候我们可以看到这个select执行的时间太久,数据库连接的时候Mybatis会有个超时时间。所以每次都是执行中断。

并且在测试的时候用原来的数据就可以成功,新增的两条数据不行,这是因为我取出条件表的所有数据,如果用原来数据测试,第一次循环就匹配上了,就不用下面的条件继续查询。所以造成新的数据,第一次条件查询没查询到,那么就使用第二个组合条件查询,由于数据量大,而且组合条件没有建立索引,引起这个问题,花了半个小时找问题,最好还要dba帮忙看是不是由于数据库mysql设置的时间问题,当时我说能否看慢查询,对于这种查询中断的是没有记录在慢查询的日志中,只有完整的执行后才会记录在慢查询的日志中。

相关文章

  • 一次mysql问题查询

    一、好言 目前这个年龄真的很尴尬 不够成熟也不够幼稚 没有能力却有野心 二、背景 昨天上线,但是在准生产上,出...

  • mysql查询保持in的顺序

    目的:解决mysql的in语法查询顺序问题 mysql数据库总,使用in语句查询,查询结果默认会根据主键id排序。...

  • [mysql] mysql 查询性能问题

    问题描述 查询一组数据,耗时大约10s,客户希望的是300ms,整体差距还是很大,想看下能否优化到用户想要的性能。...

  • mysql无法正常查询

    现象: mysql服务器本地连接查询没有问题 其他服务器连接mysql服务进行查询没有问题 公司内部连接到mysq...

  • mysql文章汇集

    解决MySQL子查询排序失效的问题Mysql不支持FULL JOIN怎么办?

  • 头发一天天的掉,你知道MySQL的Limit有性能问题吗?

    你知道MySQL的Limit有性能问题吗? MySQL的分页查询通常通过limit来实现。 MySQL的limit...

  • mysql时区问题

    mysql时区问题 查询mysql时区 我在使用mysql时,与实际的时间相差了8小时 通过命令查出mysql的时...

  • 关于Java连接数据库更新不了数据的解决办法:executeUp

    问题 问题描述:Java写的一个MySQL帮助类能够正常连接MySQL数据库,且能够查询MySQL数据库的数据,封...

  • mysql慢查询日志

    慢查询日志 MySQL 慢查询日志是排查问题 SQL 语句,以及检查当前 MySQL 性能的一个重要功能,执行时间...

  • 2018-03-20

    MYSQL查询语句 MYSQL复杂操作语句 MYSQL多表查询方法 函数部分

网友评论

      本文标题:一次mysql问题查询

      本文链接:https://www.haomeiwen.com/subject/datyxxtx.html