Php 限制数据库请求

Php 限制数据库请求,php,javascript,jquery,mysql,Php,Javascript,Jquery,Mysql,一个网站上的用户可以点击一个按钮为一张又一张图片投票。这将通过jQuery向MySQL数据库发送一些请求。我不确定,但该网站帐户最多允许10个连接 在这种情况下,单个用户重复单击是否会导致多个请求,进而导致性能问题?如果是这样,有什么简单的方法来限制请求 编辑:问题重新表述为标记为不清楚。 从MySQL 4.0.2开始,您可以限制个人帐户对以下服务器资源的访问: 帐户每小时可以发出的查询数 帐户每小时可以发布的更新数 帐户每小时可以连接到服务器的次数 附加信息- MySQL没有查询超时值,也没有

一个网站上的用户可以点击一个按钮为一张又一张图片投票。这将通过jQuery向MySQL数据库发送一些请求。我不确定,但该网站帐户最多允许10个连接

在这种情况下,单个用户重复单击是否会导致多个请求,进而导致性能问题?如果是这样,有什么简单的方法来限制请求

编辑:问题重新表述为标记为不清楚。

从MySQL 4.0.2开始,您可以限制个人帐户对以下服务器资源的访问:

帐户每小时可以发出的查询数

帐户每小时可以发布的更新数

帐户每小时可以连接到服务器的次数

附加信息-

MySQL没有查询超时值,也没有任何其他内置方式来限制单个查询。然而,编写一个脚本来终止长时间运行的查询是非常简单的。您甚至可以捕获该用户并进行查询,以便稍后能够击败违规的用户/程序员

是一个使用PERL的示例

编辑以处理传统信息

根据你的应用程序所做的查询,哪怕是一次点击也可以放下整个网站。尽管如此,投票可以以一种非常轻量级的方式实现,因此,即使有1000名用户反复点击,网站也会响应


您还可以在应用程序级别限制DB命中率-例如,通过在会话变量中保留用户已投票的照片的id-在命中DB之前检查该变量,您应该是确定的

首先确保您的问题是数据库,也许您的Web服务器上的某些逻辑处理时间太长

但是,要“限制”您的请求,您应该优化查询、使用索引、服务器上的缓存,或者重新设计数据库结构


希望这有帮助。干杯

如果没有理由让任何人每隔几秒钟再点击一次按钮,只需设置该按钮的禁用功能即可。因此,当它被点击时,它会被禁用5秒,然后重新启动

你可能想找一个更好的计时器方法,这是我马上知道的一种方法

你可以用 点击按钮-

document.getElementById("button").disabled = true;
var enableButton = setInterval( "enableButton()", 5000 );

function enableButton()
{
document.getElementById("button").disabled = false;
clearInterval(enableButton)
}

祝你好运

“我注意到当点击一个按钮时,结果的显示有点滞后”-也许需要一个更快的服务器?你有覆盖指数吗?可能是@Mitch Wheat的复制品:我已经重新制定了我的问题。问题在于单个用户(站点用户而非SQL用户)是否会通过反复单击触发SQL请求的按钮而导致一些真正的性能问题。MySQL用户查询限制非常粗糙,如果你是对的,但问题是如何控制它们,而不是如何改进它们。我重新阐述了这个问题。我正在寻找的那种节流可能最好在PHP端完成,尽管我愿意接受任何可能有助于数据库的想法。但是,如果您怀疑存在恶意行为,请求本身将不会受到限制,并且这将很容易被所说的“攻击者”规避。