首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql -使用大表200 k行

mysql -使用大表200 k行
EN

Stack Overflow用户
提问于 2016-11-15 03:59:23
回答 1查看 1.1K关注 0票数 2

我使用这段代码从mysql中生成html表。表有200 k行。

代码语言:javascript
复制
$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查询添加了如下限制

代码语言:javascript
复制
$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行

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-15 04:11:40

处理来自MySQL的如此大的结果集的方法是使用称为分页的方法。使用分页时,一次只能检索记录100或1000。这消除了您的web服务器或网页与太多的信息崩溃的问题。

MySQL有两个非常适合处理这个问题的关键字。第一个是LIMIT,您已经知道,它控制结果集中显示的总记录数。第二个是OFFSET,它指定从结果集中开始记录的位置。

为了给出一个例子,如果您想从您的表中返回第二个100条记录,您将发出以下查询:

代码语言:javascript
复制
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分页来控制偏移量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40601779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档