首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >瓶颈问题mysql

瓶颈问题mysql
EN

Stack Overflow用户
提问于 2012-07-10 06:46:56
回答 3查看 217关注 0票数 1

我有这个项目拍卖门户,问题是有时候用户不能出价或者更好的词是请求出价,有时需要2-3秒才能注册,冲突是拍卖在系统检测到有人出价之前就已经关闭了。

我添加了一个日志来查看发生了什么,下面是我发现的:

代码语言:javascript
复制
Bid insert date        |    Auction close date
2012-06-25 14:40:57         2012-06-25 14:40:54

正如你所看到的,拍卖已经接近尾声,但是出价已经晚了3秒。为了澄清一下,如果拍卖已经结束,用户就不能出价,所以我确信这个请求是在拍卖结束之前提出的。

这发生在每天一次拍卖,我不知道什么能触发这个问题。我使用的是PHP和MySQL。

EN

回答 3

Stack Overflow用户

发布于 2012-07-10 06:59:30

一个可能的原因是用户加载页面,包括一个‘出价’按钮,拍卖关闭,按钮仍然在那里,并相应地执行操作。如果您要验证拍卖是否在插入之前已经关闭,那么这种情况永远不会发生。SELECT和INSERT之间的时间不应超过0.1秒。我想,在添加最后一个出价之前,您不会验证拍卖的状态。

票数 1
EN

Stack Overflow用户

发布于 2012-07-10 08:21:43

2-3秒?

您在出价请求点上运行了多少个查询?我可以想象:

( 1)用户登录了吗?( 2)是否有允许投标的帐户?( 3)拍卖是否仍然开放?

我不认为这4个查询需要超过1秒的时间才能运行,除非您已经编写了非常好的查询。您使用的是什么MySQL DB层?您是否确保您的代码尽可能精简?例如,您多久打开一次数据库,等等。

如果他们出价和拍卖结束之前,他们的出价被处理,强硬饼干。你还没赢。在eBay上有时也会发生同样的事情,这是非常困难的。如果问题是你的系统允许延迟投标获胜,那么你需要在这方面重新检查你的代码。最后一次投标尝试肯定会在保存出价之前检查拍卖是否仍在进行。这不应该需要近一秒的时间。

也许您也应该检查您的表索引。数据搜索速度太慢,数据量太大,数据插入速度受到影响。

可能有很多错误,从简单的索引错误到可疑的查询/循环/等等。

票数 1
EN

Stack Overflow用户

发布于 2012-07-10 06:51:45

不匹配确切的关闭时间戳,但将其与(关闭时间- turnaround_time)进行比较。

假设关闭时间是14:00,请求的周转时间是10秒。如果在13:59:50之前提出请求,我们将只考虑。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11408001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档