2011-02-28 23 views
3

我在使用php从数据库获取记录时遇到问题。数据库在限制后没有响应

我在数据库中有31700条记录。当我获取记录从该查询:

SELECT * FROM product_likes

然后,剧本被中止,当我使用的查询的限制(即“选择空白页的showing.but *从product_likes限制0,12000;“),那么它最多可以提供12000条记录。

当我fecthes记录从该查询:

选择PRODUCT_NAME,LIKE_COUNT从product_likes

然后,脚本被放弃,当我在查询中使用的限制(空白页被showing.but即“select product_name,like_count from product_likes limit 0,30000;”),那么它最多可以提供30000条记录。

我不明白问题在哪里。而且我仍然无法获取所有记录。

请让我知道其中的原因,我该如何解决这个问题?

+2

你确定你不想批量你的结果吗?你真的需要一次超过30万记录?你不能做多个查询? – Borealid 2011-02-28 12:53:59

+0

是的,我想一次获取所有记录。 – Chirayu 2011-02-28 12:56:26

+1

你如何运行查询? MySQL的命令行,phpMyAdmin,别的东西?什么版本的MySQL?您可以发布DDL和一些INSERT语句,以便我们可以尝试重现问题吗?你可以编辑你的问题,并包括'product_likes'的EXPLAIN SELECT *的结果吗? – 2011-02-28 13:20:23

回答

1

您可能需要修改一些服务器变量,例如PHP的memory_limit和MySQL的max_allowed_packet。但我不会在单个页面中显示很多项目。超过一些访问者开始访问您的网页后,您的服务器将不会响应。

0

我在PHP程序运行此查询,并要显示一个网页

上的所有结果

这句话很不对头,很难知道从哪里开始。

在您的查询中使用“LIMIT”一次检索页面的数据 - 并且一次只显示一个页面。

并学习如何使用不在PHP中运行的其他工具(例如,mysql命令行客户端),以便您可以将代码中的问题与您正在使用的工具中的问题分离。