无论如何,在 MySQL 中是否有优先级或限制查询?
我是服务器上的 DBA,看到很多未优化的查询进入服务器,它们只会破坏 CPU。我正在考虑限制某些以不良方式访问数据库的用户。
澄清:
我意识到 MySQL 内置了一些功能来限制查询、连接等的数量。但这并不是真正的问题,而是一旦在蓝月亮中,用户将发送未优化的查询,我需要计时out 或类似的东西。
无论如何,在 MySQL 中是否有优先级或限制查询?
我是服务器上的 DBA,看到很多未优化的查询进入服务器,它们只会破坏 CPU。我正在考虑限制某些以不良方式访问数据库的用户。
澄清:
我意识到 MySQL 内置了一些功能来限制查询、连接等的数量。但这并不是真正的问题,而是一旦在蓝月亮中,用户将发送未优化的查询,我需要计时out 或类似的东西。
http://dev.mysql.com/doc/refman/4.1/en/user-resources.html
从 MySQL 4.0.2 开始,您可以限制单个帐户对以下服务器资源的访问:
一个账户每小时可以发出的查询数
一个账户每小时可以发布的更新数量
一个账号每小时可以连接服务器的次数
附加信息 -
MySQL 没有查询超时值,或任何其他内置方式来限制单个查询。但是,编写一个会杀死长时间运行的查询的脚本是非常简单的。您甚至可以捕获用户并进行查询,以便稍后击败有问题的用户/程序员。
这是一个使用 PERL 的示例。
我知道 phpMyAdmin 有一个区域用于每小时最大查询数、每小时最大更新数、每小时最大连接数和每个用户的最大用户连接数。除了 phpMyAdmin 之外,可能还有其他方法可以设置这些值