我使用这段代码从mysql中生成html表。表有200 k行。
$view->ach = $db->Query("SELECT from_unixtime(`date`), `aav_id`, `aav_domain`, `aav_word`, `aav_referer`, `aav_ip`, `aav_country`
FROM aav_views
where aav_user_id=$USER_ID
ORDER BY date DESC
");
但这不管用。web浏览器声明
“页面不工作,www.mysite.com当前无法处理此请求。HTTP错误500”
(不是500个内部服务器错误)
我为sql查询添加了如下限制
$view->ach = $db->Query("SELECT from_unixtime(`date`), `aav_id`, `aav_domain`, `aav_word`, `aav_referer`, `aav_ip`, `aav_country`
FROM aav_views
where aav_user_id=$USER_ID
ORDER BY date DESC
LIMIT 1000
");
现在一切都很顺利。但我需要无限制地使用。我需要查询所有200 k行
发布于 2016-11-15 04:11:40
处理来自MySQL的如此大的结果集的方法是使用称为分页的方法。使用分页时,一次只能检索记录100或1000。这消除了您的web服务器或网页与太多的信息崩溃的问题。
MySQL有两个非常适合处理这个问题的关键字。第一个是LIMIT,您已经知道,它控制结果集中显示的总记录数。第二个是OFFSET,它指定从结果集中开始记录的位置。
为了给出一个例子,如果您想从您的表中返回第二个100条记录,您将发出以下查询:
SELECT from_unixtime(date), aav_id, aav_domain, aav_word, aav_referer, aav_ip, aav_country
FROM aav_views
where aav_user_id=$USER_ID
ORDER BY date DESC
LIMIT 100 OFFSET 100通常,用户通过包含查询结果的UI分页来控制偏移量。
https://stackoverflow.com/questions/40601779
复制相似问题