【问题标题】:Profiling mysql on two different servers在两个不同的服务器上分析 mysql
【发布时间】:2015-03-10 06:14:13
【问题描述】:

我有两个相同的 mysql 数据库。一个在本地运行,一个在生产服务器上运行。在本地运行的服务器在所有查询上始终快 3 倍,即使生产服务器比我的本地计算机内存更大、CPU 更好。

我做了SHOW PROFILES 并没有显示任何明确的内容,大多数项目都是相同的,尽管有时本地机器要好约 10-20%。我如何确定这种差异来自哪里?也许它与网络性能有关,但我不确定如何使用 mysql 查询来分析它。

对于如何解决这个问题并提高生产数据库性能,您有什么建议?

【问题讨论】:

  • 数据库大小?您本地的记录可能要少得多(如果它只是一个开发环境)。两者的索引是否相同?
  • 是否多人同时使用生产数据库?
  • @TarynEast -- 是的,数据库内容是相同的。
  • 是 prod 服务器实际上是一台真正的计算机,或者是共享服务器上的共享切片,假装是具有更好 CPU/RAM 等的真正服务器 :)(只是想所有的可能性)
  • @TarynEast 它是一个 RDS 数据库服务器。

标签: mysql sql performance


【解决方案1】:

Profile 查询以查看时间花费在哪里。一个长的“发送数据”阶段将显示它是否是网络延迟。

测量查询时间时始终使用SQL_NO_CACHE

【讨论】:

  • 如何设置SQL_NO_CACHE ?是:set sql_no_cache=1 吗?还是我需要在其他地方做?
  • SELECT SQL_NO_CACHE * FROM table1一样在SELECT之后使用它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-15
  • 1970-01-01
  • 2015-12-26
  • 1970-01-01
  • 2019-04-20
  • 2019-08-03
相关资源
最近更新 更多