-6

该应用程序是需要查询速度(选择、更新、插入)的实时站点 每次查询的低延迟必须小于 200 毫秒

好吧,每个查询平均有 98%。完成作业查询的时间少于 0.001-0.005 秒。

问题有时大约每小时 5 次,它们可能需要 1 秒,可能是 5 秒,我不知道问题的真正原因

我发现减少问题的方法是将其从 INNODB 移动到 MEMORY,但有时仍然是一个问题,重要的是当系统崩溃时需要恢复。

Example query in sometime query more than 1 secound

# Time: 130328 20:27:40
# User@Host: ferge572w[ferge572w] @ localhost []
# Query_time: 1.339712  Lock_time: 0.000026 Rows_sent: 0  Rows_examined: 1
SET timestamp=1364477260;
UPDATE log_product SET credit=credit+1 WHERE id_product='149721921' and id_user='2029275' LIMIT 1;

table index: id_product, id_user
No.row: 33,491   table size: 5Mb

# Time: 130329  7:25:37
# User@Host: ferge572w[ferge572w] @ localhost []
# Query_time: 1.439856  Lock_time: 0.000031 Rows_sent: 0  Rows_examined: 1
SET timestamp=1364516737;
UPDATE product SET lastuser='hello',picperson='1',lastid='2030505',country='thailand',price=price+0.01,time=DATE_ADD(time, INTERVAL 3 SECOND) WHERE id='349721227' LIMIT 1;

table index: id
No.row: 35   table size: 2.1Mb

我的应用程序使用 PHP 和 MYSQL

问题是为什么有时查询可能需要长达 5 秒的时间?

4

1 回答 1

3

你提供的细节很少。我将在这里提供一个尽可能简单的答案:

使用固态硬盘

如果您还没有使用 SSD,那可能就是问题所在。传统的硬盘驱动器在随机 I/O 方面很糟糕,有时会因为太忙而无法及时处理请求而陷入困境。当 I/O 周期用完且性能跌落悬崖时,MySQL 似乎陷入了绝对的恐慌。

于 2013-03-28T19:20:34.230 回答