MySQL管理出现长时间执行原因解析-创新互联

下文内容主要给大家带来MySQL管理出现长时间执行原因解析,这里所讲到的知识,与书籍略有不同,都是创新互联专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。

成都创新互联一直通过网站建设和网站营销帮助企业获得更多客户资源。 以"深度挖掘,量身打造,注重实效"的一站式服务,以成都网站设计、网站制作、移动互联产品、成都全网营销服务为核心业务。十多年网站制作的经验,使用新网站建设技术,全新开发出的标准网站,不但价格便宜而且实用、灵活,特别适合中小公司网站制作。网站管理系统简单易用,维护方便,您可以完全操作网站资料,是中小公司快速网站建设的选择。

1. 出现长时间执行的查询的原因

  由于SQL执行效率差而导致的长时间查询:

  由于被SQL注入而导致的长时间查询:

  由于DDL语句引起表元数据锁等待:

MySQL管理出现长时间执行原因解析

2. 长时间执行的查询带来的问题

  通常来说,除非是BI/报表类查询,否则长时间执行的查询对于应用缺乏意义。

  消耗系统资源,比如大量长时间查询可能会引起 CPU、IOPS 和/或 连接数 使用率过高等问题。

  带来系统不稳定的隐患(比如 InnoDB 引擎表上的长时间查询可能会导致 ibdata1 系统文件尺寸的增加)

3. 如何避免长时间执行的查询

应用方面应注意增加防止 SQL 注入的保护。

在新功能模块上线前,进行压力测试,避免出现执行效率很差的 SQL 大量执行的情况。

尽量在业务低峰期进行索引创建删除、表结构修改、表维护和表删除操作。

4. 如何处理长时间执行的查询

a、通过命令 show processlist; 查看当前执行会话,Kill会话长时间查询。

b、创建事件自动清理长时间执行的查询

create event my_long_running_query_monitor on schedule every 5 minute starts '2018-08-08 11:00:00' on completion preserve enable do begin   declare v_sql varchar(500);   declare no_more_long_running_query integer default 0;   declare c_tid cursor for     select concat ('kill ',id,';') from      information_schema.processlist     where time >= 3600     and user = substring(current_user(),1,instr(current_user(),'@')-1)     and command not in ('sleep')     and state not like ('waiting for table%lock');   declare continue handler for not found     set no_more_long_running_query=1;     open c_tid;   repeat     fetch c_tid into v_sql;     set @v_sql=v_sql;     prepare stmt from @v_sql;     execute stmt;     deallocate prepare stmt;   until no_more_long_running_query end repeat;   close c_tid; end;

对于以上关于MySQL管理出现长时间执行原因解析,如果大家还有更多需要了解的可以持续关注我们创新互联的行业推新,如需获取专业解答,可在官网联系售前售后的,希望该文章可给大家带来一定的知识更新。

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前名称:MySQL管理出现长时间执行原因解析-创新互联
浏览地址:http://azwzsj.com/article/gccpc.html