是啥导致本地 mysql 服务器查询速度出现随机峰值?

Posted

技术标签:

【中文标题】是啥导致本地 mysql 服务器查询速度出现随机峰值?【英文标题】:what is causing random spikes in local mysql server query speeds?是什么导致本地 mysql 服务器查询速度出现随机峰值? 【发布时间】:2013-01-21 21:55:42 【问题描述】:

因此,当我在 phpMyAdmin 中的本地主机上玩耍并使用 SQL 做一些事情时,我意识到执行数据库查询所需的时间会随机出现巨大的峰值。我有一个包含大约 3000 个条目的数据库表,我正在运行一个非常简单的查询来显示其中的前 2500 个。

平均而言,运行此查询大约需要 0.003 到 0.004 秒。 (当然,加载 phpMyAdmin 页面需要更长的时间,但我们只是查看查询时间。)但是,我注意到查询时间偶尔会超过 0.01。一旦它甚至飙升至0.04。因此,我的好奇心越来越强,我决定重复运行相同的查询,并生成我的结果图表:

我没有在我的计算机上运行任何其他可能与 mysql 交互的东西,因为它是我的本地主机,所以我是唯一一个对我的数据库做任何事情的人(对吗?)。轻微的异常值是可以理解的,但是是什么导致加载时间从 3 到 30 倍不等,似乎完全随机?

谁能帮我满足我的好奇心?

【问题讨论】:

磁盘缓存未命中代价高昂。随机磁盘 I/O 是不可避免的,并且会在不相关的地方导致一些缓存未命中。 可能与内存或处理器负载有关。 您无法真正保证现代 PC 上的确定性结果,除非您要运行实时操作系统,即使您认为在背景。 【参考方案1】:

我的计算机上没有运行任何其他可能与 MySQL 交互的东西

但是您的计算机上是否还有其他运行的东西可能会定期与您的硬盘驱动器/CPU 交互?因为这可以解释尖峰。也许扫描正在运行的进程,并将 cpu/磁盘活动与峰值进行比较。

【讨论】:

你知道有什么工具可以记录所有进程的 I/O 活动吗? 你运行的是什么操作系统?在 Windows 上可以使用 Resource Monitor,恐怕我不知道是 Mac 还是 Linux,但我相信这里有人会! 你的意思是resmon.exe?据我所知,它只能看到过去的一分钟,并且无法导出数据。您是否知道任何可以以某种可读格式提供所述数据的长期转储的软件(XLS 可以)?我使用的是 Windows 7,但我不知道提问者使用的是什么。 您可以使用Performance Monitir,它可以记录和导出数据。 [technet.microsoft.com/en-us/library/cc749249.aspx]【参考方案2】:

即使您的数据库在本地主机上运行,​​它也不是完全孤立地运行。它正在与您正在运行的所有其他进程竞争您的系统资源。

【讨论】:

以上是关于是啥导致本地 mysql 服务器查询速度出现随机峰值?的主要内容,如果未能解决你的问题,请参考以下文章

是啥导致 MySQL 基数减少?

mysql和access的区别是啥?

MySQL删除千万级数据量导致的慢查询优化

是啥导致 MariaDB 服务器出现 SpringJDBC 套接字写入错误?

是啥导致我的网络服务出现此 403 错误?

是啥导致 Chrome 页面底部出现此空白?