为什么MySQL查询在一台设备上缓慢而在另一台设备上却没有?

时间:2017-12-08 14:01:06

标签: mysql performance

我正在创建基于文本的RPG,主要使用PHP和MySQL。我在笔记本电脑上遇到了一些慢查询,但这些相同的查询在我的电脑上大大加快,我的笔记本电脑有点老了。以下是我使用的内容的规范和查询示例。

PC:
- >显卡:NVidia GeForce 1060 3GB
- >处理器:Ryzen 3 1300x 3.5GhZ 10MB缓存
- > RAM:8GB DDR4 2400MHz
- > SSD:256GB
//不确定那些是否重要
- >数据库服务器版本:10.1.26-MariaDB
- > Apache:2.4.27
- >数据库客户端版本:libmysql - mysqlnd 5.0.12-dev - 20150407 笔记本:
- >图形:Intel HD 3000
- >处理器:Intel Pentium 2020M 2.4GHz 2MB缓存
- > RAM:4GB DDR3
- > HDD:512G​​B

这是一个查询示例:

UPDATE data SET posx = $posX, posy = $posY, last_action = '.time().', current_stamina = $newStamina WHERE id = $id

在我的电脑上这样查询的平均时间是:0.004秒,但我的笔记本电脑上的同样查询需要0.4秒到0.1秒。平均而言,它在0.2秒内执行。我认为这对于单个简单查询来说非常慢。我以为它可能是因为缺少索引,所以我添加了ID索引,结果仍然相同。

我并不十分关心我的笔记本电脑的性能,但是,我关心的是如果我在笔记本电脑上遇到如此慢的查询,当我将游戏放在在线服务器上时,我是否应该期待相同的慢查询? (我还没有)

问题是我的笔记本电脑上的其他查询很快(例如从数据库或连接中读取)。

我知道这是非常具体的事情,所以我很感激任何信息。

谢谢,

1 个答案:

答案 0 :(得分:0)

这可能有很多因素。首先,你的笔记本电脑上的内存较少,如果mariadb在个人电脑和笔记本电脑上的配置相同,这可能很重要,例如使用4GB以上的内存。这可能会导致问题。然后,如上所述,您的PC上可能有SSD,但笔记本电脑上有硬盘。然后你的笔记本电脑上可能会运行很多常驻应用程序,这会减慢mysql的速度。尝试比较两个设备上的mysql配置,检查两者上运行的进程数,检查笔记本电脑上的IO时间。
你很可能不必担心将你的应用程序放到网上并且查询速度慢 - 这些服务器配置得很好,而且简单的更新肯定不是问题。