应用程序是需要查询速度的实时站点(选择,更新,插入)每个查询的低延迟必须小于200毫秒
嗯,平均每次查询98%。完成作业查询的时间小于0.001-0.005秒。
问题是 有时候每小时约5次,他们可能需要1s,可能是5s,我不知道问题的真正原因我发现减少问题是从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秒钟的时间?
答案 0 :(得分:3)
你对细节的了解很少。我在这里提供的答案尽可能简单:
如果你还没有使用SSD可能是个问题。传统的硬盘驱动器在随机I / O上很糟糕,并且在太忙而无法及时处理请求时会陷入困境。当I / O周期出现并且性能下降时,MySQL似乎陷入了绝对的恐慌。