2014-03-26 37 views
0

我正计划在PHP/MySQL中使用一个非常轻量级的帮助台系统,其中几个实时代理将被列在一张表中,并设置一个标志,以便他们可以与用户进行对话。在SQL配对系统中,如何避免从滞后过度匹配?

我担心的是,在选择开口剂和更新与下一个查询记录的时间,它可能是其他用户将已经执行了选择,抓住同一个代理。

这不是我期望在重负载之外成为一个巨大的问题,但它仍然是一个担心。我确信之前已经解决了这个问题,但我不确定在哪里寻找它。我怎样才能避免双重配对?

+1

请阅读我的[dba.stackexchange]答案之一(http://dba.stackexchange.com/questions/61603/how-to-query-and-increase-a-value-counter-in-a- thread-safe-way-avoid-race-co/61605#61605)它回答你的问题。 – GhostGambler

+0

这看起来正是我所需要的,我相信我为这个项目编写PDO的DAL将能够在不做任何修改的情况下处理它。谢谢! – Morgan

回答

1

此问题已通过使用(我的)SQL transactions年前解决。这意味着在你的情况下,表结构应该使用InnoDB引擎,并且为简单起见,速度和安全性你应该使用prepared SQL语句(与PHP PDO相当简单)。

+0

我其实已经写了PDO的抽象层为这个特定的项目,我想它会做交易罚款不加修饰。 – Morgan