【发布时间】:2017-12-08 14:01:05
【问题描述】:
我正在创建一个基于文本的 RPG,主要只使用 PHP 和 MySQL。我在笔记本电脑上遇到了一些缓慢的查询,但这些相同的查询在我的 PC 上要快得多,我的笔记本电脑有点旧。以下是两者的规格和查询示例,以及我使用的内容。
电脑:
->显卡:英伟达 GeForce 1060 3GB
->处理器:锐龙 3 1300x 3.5GhZ 10MB 缓存
->内存:8GB DDR4 2400MHz
->固态硬盘:256GB
//不确定这些是否重要
->数据库服务器版本:10.1.26-MariaDB
->阿帕奇:2.4.27
->数据库客户端版本:libmysql - mysqlnd 5.0.12-dev - 20150407
笔记本电脑:
->显卡:Intel HD 3000
->处理器:Intel Pentium 2020M 2.4GHz 2MB 缓存
->内存:4GB DDR3
->硬盘:512GB
这是一个查询示例:
UPDATE data SET posx = $posX, posy = $posY, last_action = '.time().', current_stamina = $newStamina WHERE id = $id
在我的 PC 上进行此类查询的平均时间是:0.004 秒,但在我的笔记本电脑上执行相同的查询需要 0.4 到 0.1 秒。平均而言,它在 0.2 秒内执行。对于单个简单查询,我认为这非常慢。我认为这可能是因为缺少索引,所以我为 ID 添加了索引,仍然是相同的结果。
我不太关心我的笔记本电脑的性能,但我担心的是,如果我在笔记本电脑上遇到如此慢的查询,当我将游戏放在在线服务器上时,我是否应该期待同样的慢查询? (我还没有)
问题是我笔记本电脑上的其他查询速度很快(例如从数据库读取或连接)。
我知道这是非常具体的事情,所以我很感激任何信息。
谢谢你,
赫克托
【问题讨论】:
-
简短回答.. 将数据写入磁盘时,SSD 比 HHD 快得多.. 因此,如果您希望服务器也能快速写入,您应该搜索使用 SSD 的虚拟主机..
-
坦率地说,您没有已经在 ID 上建立索引这一事实令人担忧,因此我几乎会质疑您设置的所有其他部分。
-
好吧,据我所知,primary_key (ID) 是被声明为主键的索引,所以我认为这不是原因。
-
在MySQL中,PK是一个索引,它是
UNIQUE。添加INDEX(id)是一种浪费。
标签: mysql performance