MySQL是否有限制用户运行大型查询的选项?假设用户可以查询的最大记录数仅为10000行或10MB。
编辑: 目标是我想让我的数据库中的一堆表对用户进行选择访问。我很好,他们一次选择几个项目,但不允许他们转储/加入表格让我们说最后两个月的数据(因为这是很多工作量,可能会使服务器中运行的其他服务陷入困境)
因此,如果用户请求此类查询,则应该输出错误并返回与“超出限制”或相关内容相对应的错误代码。
答案 0 :(得分:0)
如果你想为查询设置限制只是使用限制,在执行查询时请执行以下示例:
SELECT id FROM idlist WHERE processed=0 ORDER BY id LIMIT 10000;
答案 1 :(得分:0)
AFAIK,没有此类设置,但您可以创建如下所示的视图
create view myview
as
select * from table
order by some_column
limit 10000
您可以根据任何特定条件(例如
)更改要创建视图的查询create view myview
as
select * from table
where some_condition
order by some_column
limit 10000
然后,您可以为这些特定的受限用户分配select
权限。
GRANT SELECT ON myview to restricted_user1
答案 2 :(得分:0)
结合--safe-udpates
,您可以使用select_limit
和max_join_size
。
由于您在命令行中指定了这些设置(和/或 my.cnf ),因此需要重新启动服务器。
不幸的是,这不是“每个用户”。变量不是动态的。
您可以(相当容易)将LIMIT
附加到用户的查询中(因为它是查询中的最后一个子句)。