使用简单的查询,如:
select * from <table> limit 5;
将在几分之一秒内返回结果,这是预期的。我可以将限制增加到49,结果仍然会在几分之一秒内返回。但是,将限制增加到50将导致无限的执行时间。
只选择一列允许我将限制增加到几千,但当我将查询限制在5000左右时,同样的问题也适用。
我正在使用一个包含大约100列和2200万行的数据库。
为什么我会看到这种行为?
编辑:
使用“order by”:
select * from <table> order by id limit 5;
57秒
select * from <table> order by id limit 50;
57秒
select * from <table> order by id limit 100;
没有完成
答案 0 :(得分:0)
这可能会有所帮助: https://dev.mysql.com/doc/refman/5.0/en/select.html
尝试使用SQL_BIG_RESULT
或SQL_BUFFER_RESULT
。
这也可能是由于内存分配设置不佳造成的。 你在存储BLOB或任何其他大型领域吗?