在两个不同的服务器上分析 mysql

Posted

技术标签:

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

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

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

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

【问题讨论】:

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

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

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

【讨论】:

如何设置SQL_NO_CACHE ?是:set sql_no_cache=1 吗?还是我需要在其他地方做? SELECT SQL_NO_CACHE * FROM table1一样在SELECT之后使用它。

以上是关于在两个不同的服务器上分析 mysql的主要内容,如果未能解决你的问题,请参考以下文章

如何开启mysql的远程连接数据库,成功将在两个不同服务器上的web和数据库实现连通?

怎么在一台服务器上运行mysql数据库,里面是两个不同软件的数据库,在不改端口的情况下,运行不冲突!

怎么在一个 mysql 服务的两个不同数据库 database或者是表 之间作同步

两个mysql版本可以共享同一个端口号吗?

Laravel 5在两个vps服务器上

如何在同一台机器上安装多个MySQL的实例(转)