如何在MySql中限制或优先化查询

时间:2010-06-28 16:47:03

标签: mysql query-optimization throttling

无论如何,在MySQL中根本没有优先考虑或限制查询?

我是服务器上的DBA,它看到许多未经优化的查询进入服务器,它们只会破坏CPU。我正在考虑限制那些以糟糕的方式打击数据库的用户。

澄清:

我意识到MySQL内置了一些设施来限制查询,连接等数量。但这些并不是真正的问题,只有在蓝色月亮中用户才会发送未经优化的查询,我需要把它计时或类似的东西。

2 个答案:

答案 0 :(得分:4)

http://dev.mysql.com/doc/refman/4.1/en/user-resources.html

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

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

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

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

其他信息 -

MySQL没有查询超时值,也没有任何其他内置方法来限制单个查询。但是,编写一个可以终止长时间运行查询的脚本非常简单。您甚至可以捕获用户和查询,以便以后可以击败有问题的用户/程序员。

Here是使用PERL的示例。

答案 1 :(得分:0)

我知道phpMyAdmin有一个每小时最大查询数,每小时最大更新数,每小时最大连接数和每个用户最大用户连接数的区域。除了phpMyAdmin

之外,可能还有其他方法可以设置这些值