Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 缓慢的查询是否有害?_Mysql_Performance - Fatal编程技术网

Mysql 缓慢的查询是否有害?

Mysql 缓慢的查询是否有害?,mysql,performance,Mysql,Performance,我知道缓慢的查询可能会让客户感到烦恼,或者需要很长时间才能完成。 除了加快查询速度之外,您还应该优化查询吗? 换句话说,在服务器上长时间运行的查询是否会对服务器造成任何损坏或其他问题?如果在具有大量写入活动的系统上有一个真正的长时间运行的查询,则维护完整性的成本可能会越来越高。由于InnoDB上的查询是在数据的一致快照上进行的,因此后续写入将以某种方式排队,直到查询结束 如果您经常这样做,通常最好为报告目的创建一个副本数据库。MySQL的主/从系统使这一点变得相当简单。对于MyISAM表(在某些

我知道缓慢的查询可能会让客户感到烦恼,或者需要很长时间才能完成。 除了加快查询速度之外,您还应该优化查询吗?
换句话说,在服务器上长时间运行的查询是否会对服务器造成任何损坏或其他问题?

如果在具有大量写入活动的系统上有一个真正的长时间运行的查询,则维护完整性的成本可能会越来越高。由于InnoDB上的查询是在数据的一致快照上进行的,因此后续写入将以某种方式排队,直到查询结束

如果您经常这样做,通常最好为报告目的创建一个副本数据库。MySQL的主/从系统使这一点变得相当简单。

对于MyISAM表(在某些情况下还有其他引擎),它会阻止其他查询的启动,因此它们需要很长时间才能完成。其他地方可能会出现超时(例如,在Web服务器上,以及用户的耐心),这可能会导致连接终止-在没有事务的情况下,这可能会导致数据完整性问题

即使在没有阻塞的情况下,长查询也会消耗资源,这意味着服务器上同时发生的其他事情会减慢速度


在配置不好的服务器上,它可能会导致消耗太多内存—首先进入交换并大幅降低速度,并有可能触发OOM杀手。

减慢查询速度,即使其读取会产生很多问题。正如symcbean所提到的,服务器上的资源(I/O、内存等)使用率很高。 我主要处理InnoDB表。上周,由于一些配置问题,所有报告查询都开始命中master数据库而不是slave数据库。我们面临的一些问题是

  • I/O非常高
  • 服务器上的连接数高达700+(通常它保持在200以下,幸运的是我们仍然能够连接到MySQL!!)
  • 甚至插入。。VALUES()速度很慢,最常见的表有100多个INSERT查询等待,其中许多查询很快就会超时。(这在正常情况下不会发生)
  • 对ID进行简单选择的其他查询也很慢 还要注意的是,如果您正在执行写操作,那么将发出MyISAM(表级)/InnoDB(行级)锁。那会让你的生活更糟


    是的,这是最糟糕的情况,但缓慢的查询可能会使整个系统瘫痪。

    这并不是因为它本身,而是取决于实际的查询,如果它写得不好或恶意,那么就可能。我想如果你连续数小时运行一个与服务器CPU挂钩的查询,你可能会稍微加快正常的磨损过程。。