【问题标题】:Is it worth to enable statistics on Mysql是否值得在 Mysql 上启用统计信息
【发布时间】:2020-10-01 09:02:51
【问题描述】:

PhpMyAdmin 的“数据库”选项卡下有一个名为“启用统计”的链接。

  1. 在哪些情况下启用统计信息可以提高或降低服务器性能(CPU/RAM/IO/执行时间)
  2. 在哪些情况下启用统计信息会提供错误的结果

谢谢。

【问题讨论】:

  • 这似乎是 PhpMyAdmin 做的事情,而不是 MySQL 做的事情。

标签: mysql database performance phpmyadmin statistics


【解决方案1】:

不太清楚你到底在问什么,但我会试一试。

那里可以显示的统计数据需要额外的服务器处理时间来计算。我刚刚做了两次快速测试,一台服务器存储了 400 个表和 400 万行;另一个有 47GB 的数据,共 300 个表。两者的加载速度几乎与页面正常加载一样快,两种情况下的延迟都只有几分之一秒。

此设置不是持久的,它仅在活动显示期间加载附加统计信息,并且数据库选项卡在下次查看时返回标准显示。

选择启用这些统计信息会为每个数据库和整个数据库服务器的总数提供附加信息。

表数、行数、数据量、索引量(索引?)、存储的总数据量和开销是显示的附加列。

在哪些情况下启用统计信息可以提高或降低服务器性能

收集额外的统计数据永远不会提高服务器性能。如果您有大量数据,或者我猜这里的负载如此之大,以至于表无法锁定足够长的时间来计算统计信息,它会减少。

在哪些情况下启用统计信息会提供错误的结果

我认为这里没有警告过或可能发生的事情;计算数据使用量的方式可能存在不一致,尤其是当涉及开销或数据库有许多已删除记录时,因为即使删除行后 MySQL 在磁盘上使用的大小也不会自动减少。这可能导致 MySQL 显示较小的数据库大小但仍使用大量磁盘空间,但这不会通过 phpMyAdmin 显示为错误结果。除此之外,我不确定你在问什么关于错误结果的问题,如果我回答得不够好,也许你想澄清一下。

【讨论】:

  • 我来自 Microsoft SqlServer 的世界,以下是我对统计的想法(可能超出范围) - 统计很重要,因为它们有助于查询优化器 - 统计保存有关列的信息查询优化器用于生成查询计划 - 查询优化器创建关于如何执行查询并以有效方式查找数据(这就是我在第一个问题中谈论提高性能的原因)在 Mysql 上是否相同?来源:link
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-14
  • 2014-10-18
  • 1970-01-01
  • 1970-01-01
  • 2010-09-29
  • 1970-01-01
相关资源
最近更新 更多