2013-03-28 108 views
-6

的应用程序是需要查询的速度实时网站(选择,更新,插入)低延迟必须小于200ms每个查询数据库的实时Web应用程序(低延迟响应)

好了,平均98%每个查询。时间小于0.001-0.005秒以完成作业查询。

问题 每小时的时间大约在5,他们最多需要1秒,可以是5秒,我不知道问题的真正原因

我发现减少问题的举措,从INNODB到MEMORY,但有时候仍然是一个问题,重要的是当系统崩溃时需要恢复。

Example query in sometime query more than 1 secound 

# Time: 130328 20:27:40 
# [email protected]: 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 
# [email protected]: 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

什么使你的这篇文章毫无意义。问题是什么? –

+0

你的问题依然过于宽泛。您需要选择一个问题并就如何更好地优化解决方案寻求帮助。 – datasage

+1

你应该首先启用/检查慢查询日志 –

回答

3

您对细节方面的贡献很少。我会在这里提供答案那是尽可能简单:

使用SSD

如果您还没有使用SSD这可能是问题。传统硬盘在随机I/O上非常糟糕,并且在忙于无法及时处理请求时偶尔会陷入困境。当I/O周期结束并且性能下降时,MySQL似乎陷入绝对的恐慌。

+0

我的表是MEMORY引擎,我不知道为什么有时查询可能需要时间长达5秒。例如更新见上文。谢谢 – Domezchoc

+0

在生产中使用'MEMORY'就像玩杂耍的电锯。可能不是一个好主意。 – tadman

+0

好的,我该怎么做,因为我需要低延迟SELECT和UPDATE – Domezchoc