php 查询数据是否大于,怎么实现从数据查询数据的时候判断如果数据大于N条分次查询 递归吗?...

比如数据库有300000条数据 现在根据条件查询符合的有30000条数据 一次取太多了可能慢或者其他问题 我想每次取10000 三次取完 这只是个例子 应该怎么实现啊?用递归吗?

告知下 谢谢!!!

还有就是如果查俩张表的数据 合并在一起 还有办法排序吗根据某个字段?

回复内容:

比如数据库有300000条数据 现在根据条件查询符合的有30000条数据 一次取太多了可能慢或者其他问题 我想每次取10000 三次取完 这只是个例子 应该怎么实现啊?用递归吗?

告知下 谢谢!!!

还有就是如果查俩张表的数据 合并在一起 还有办法排序吗根据某个字段?

谢邀,对于数据量较大的结果集,我目前一般采用以下两种方式处理。采用这两种方式处理的目的就是:一是减少数据集获取时带宽资源的占用,二是减少程序对结果集处理时内存的使用。

分块,就是题主的思路

$sql = 'SELECT xxx FROM table WHERE xxx LIMIT limit :limit offset :offset';

$limit = 10000;

$offset = 0;

do{

$stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));

$stmt->execute(array(':limit' => $limit, ':offset' => $offset));

$data = $stmt->fetchAll();

// 处理逻辑

$offset += $limit;

}while(count($data));

游标,按行读取返回

$sql = 'SELECT xxx FROM table WHERE xxx';

$stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));

$stmt->execute();

$row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_LAST);

do {

// 处理逻辑 $row

} while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_PRIOR));

个人建议当你要查找后面的分块的时候,用where条件而不是直接limit 100000 , 100000:

二者区别举例如下:

//这个是第一种,取第20w开始的10w条数据

select * from table limit 100000 , 100000 order by id

//这是第二种取法

select * from table where id > 100000 limit 100000 order by id

因为mysql用limit越往后,排序之后取后面的越慢

直接通过sql语句就能搞定呀,不需要后台处理;可以排序呀,根据你指定字段order by就行了

连表查询

例如:SELECT a.* from tableA as a, tableB as b where a.id = b.id order by a.id desc limit 0,10000";

你可以先select count(1) from table where 条件。看看一共有多少数据。大于N条的时候,

你再select * from table limit m,n 分页查询

2张表的话就

select * from table1 union all select * form table2 order by 某个字段。注意查询的列数量要一样。最好类型也一样

假设表id均匀分布的情况下,可以利用ID的区间来分段查询数据

//每次计划读取的数据条数

$max_per_size = 10000;

//找到符合条件的最小ID和最大ID

$sql = "SELECT min(id),max(id) AS max_id AS num FROM `table` WHERE xx='xx'";

$stmt = $pdo->prepare($sql);

$stmt->execute();

$res = $stmt->fetch(PDO::FETCH_ASSOC);

//符合条件的最大ID

$max_id = $res['max_id'];

//符合条件的最小ID

$min_id = $res['min_id'];

$times = ceil(($max_id - $min_id + 1) / $max_per_size);

//第一次的ID区间

$current_min_id = $min_id;

$current_max_id = $min_id + $max_per_page;

for($i = 0; $i= {$current_min_id} AND id <= {$current_max_id})";

//得到数据之后的操作

//.........

//重新计算下一次的ID区间

$current_min_id = $current_max_id + 1;

$current_max_id = $current_max_id + $max_per_page;

if ($current_max_id > $max_id) {

$current_max_id = $max_id;

}

}

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/295175.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

黑白图像(DFS)

输入一个n*n的黑白图像&#xff08;1表示黑色&#xff0c;0表示白色&#xff09;&#xff0c;任务是统计其中八连块的个数。如果两个黑格子有公共边或者公共顶点&#xff0c;就说它们属于同一个八连块。如图6-11所示的图形有3个八连块。 图6-11 拥有3个八连块的黑白图形 【分析…

快速学习使用springmvc、strust2、strust1以及它们的对比

1、如何快速学习springmvc 首先&#xff0c;我们需要在复制spring相关的jar包到web-inf/lib里面去&#xff0c;然后在web.xml里面加入以下代码&#xff0c;相当于springmvc里面的servlet,这里只说明了一些常见的用法&#xff0c;如果要了解springmvc里面的控制器这些详细原理可…

你的输入法都暴露了些啥?

1 三哥对柠檬茶下手了要不要来一杯&#xff1f;▼2 能成功求婚的应该就是真爱了吧&#xff1f;▼3 气泡的花样玩法▼4 很正确&#xff1f;▼5 高手过招&#xff01;牛▼6 幽默中带着点死亡气息▼7 输入法&#xff1a;我暴露了一切▼你点的每个赞&#xff0c;我都认真当成了…

从 ThreadLocal 到 AsyncLocal

前些天跟大佬们在群里讨论如何在不使用构造函数&#xff0c;不增加方法参数的情况下把一个上下文注入到方法内部使用&#xff0c;得出的结论是 AsyncLocal 。感叹自己才疏学浅&#xff0c;居然才知道有 AsyncLocal 这种神器。于是赶紧恶补一下。ThreadLocal 要说 AsyncLocal 还…

Sersync+Rsync 增量实时同步

准备环境&#xff1a; rsync服务器&#xff1a;172.16.3.21sersync2服务器&#xff1a;172.16.3.23一、 rsync服务器先把原来的rsync包删掉yum remove rsync-2.6.8-3.1 -y,然后到http://rsync.samba.org/下载rsync包我用的包如下图所示利用securecrt上传本地[rootacong tongbu1…

浅谈RBF函数

所谓径向基函数 (Radial Basis Function 简称 RBF), 就是某种沿径向对称的标量函数。 通常定义为空间中任一点x到某一中心xc之间欧氏距离的单调函数 , 可记作 k(||x-xc||), 其作用往往是局部的 , 即当x远离xc时函数取值很小。 最常用的径向基函数是高斯核函数 ,形式为 k(||x-xc…

Repeater嵌套绑定Repeater

cs代码&#xff1a; private void RpTypeBind() {//GetQuestionTypeAndCount() 返回一个datatable this.rptypelist.DataSource LiftQuestionCtr.GetQuestionTypeAndCount(); this.rptypelist.DataBind(); } …

字符串之变形数

字符串之变形数 题目:给定2个字符串str1和str2,如果str1和str2出现的字符种类和每个字符出现的个数也一样,那么str1与str2互为变形数。请用函数实现。 例子:str1="123", str2="231" 返回 true 例子:str1="123", str2="2311" 返回…

一个彻底改变世界的思想

全世界只有3.14 % 的人关注了爆炸吧知识因随机性的到来阔然开朗蒙特卡罗赌场蒙特卡罗&#xff08;Monte Carlo&#xff09;是摩纳哥公国&#xff08;Principality of Monaco&#xff09;的一座城市。摩纳哥公国坐落在法国的东南方&#xff0c;总面积为2.02平方公里&#xff0c;…

单元测试 | 如何在Mock时匹配匿名类型参数

前言假设&#xff0c;我们需要单元测试如下方法:public User GetUser(int id) {return Repository.Query<User>(new { ID id }).FirstOrDefault(); }而对于Repository.Query&#xff0c;我们需要进行Mock。怎么实现&#xff1f;不匹配具体参数值如果我们不关心参数的具体…

java中imp结尾,imp java

适配器模式之桥梁模式设计模式目录 http://blog.csdn.net/fenglailea/article/details/52733435风.fox桥梁模式 Bridge Pattern将抽象和实现解耦&#xff0c;使得两者可以独立地变化通用类图组成抽象化角色 Abstraction...文章风来了2016-10-06972浏览量expOracle数据导入导出i…

Cookies

一&#xff0c;前言 Cookies想必所有人都了解&#xff0c; 但是未必所有人都精通。本文讲解了Cookies的各方面知识。 二&#xff0c;基础知识 1.什么是Cookies Cookie 是一小段文本信息&#xff0c;伴随着用户请求和页面在 Web 服务器和浏览器之间传递。Cookie 包含每次用户访问…

用字符串表达式访问JSON数据(java,fastjson)

2019独角兽企业重金招聘Python工程师标准>>> //单元科技-www.ccell.com.cn 技术部,开源 //XML数据有XPATH 如"root/rows[id1]/name" //在JS中JSON数据可以对象方式访问 //java中怎么 用字符串表达式访问JSON数据? 找了很久没有找到,自己写一个,以减小代…

C语言学习

时间&#xff1a;20160302 (1) C语言中&#xff0c;很多标准头文件&#xff0c;这样的头文件好处在于&#xff0c;所有的实现方法都在头文件中进行定义&#xff0c;后期对方法进行修改时&#xff0c;可以只需要改动头文件&#xff0c;就可以了&#xff0c;其他的地方也需要对应…

怎样分辨谁才是朋友圈里的真·贵族?

不是我不明白&#xff0c;这世界变化快但在这个看1分钟视频都要2倍速的世界里有一群人却仍然愿意每天花5分钟阅读2000字以上的文字信息这是多么高贵的一种精神所以高贵的你&#xff0c;值得更好的内容今天我们精选出8个优质公号他们有趣有料、有思想有温度绝对值得你的关注长按…

Android之如何解决Android studio运行出现的HAX kernel modules is not installed

HAX kernel modules is not installed 很久之前,我安装了Android studio,运行时控制台打印出这个,emulator:ERROR:x86 emulation currently requires hardware acceleration! Please ensure Intel HAXM is properly installed and useble, CPU acceleration statis:HAX kern…

Elastic AMP监控.NET程序性能

什么是Elastic AMPElastic APM 是一个应用程序性能监控系统。它可以请求的响应时间、数据库查询、对缓存的调用、外部 HTTP 请求等的详细性能信息&#xff0c;可以实时监控软件服务和应用程序。这可以帮助我们快速查明和修复性能问题。Elastic APM 还会自动收集未处理的错误和异…

java分页的工具类,java分页工具类

PageBean-分页package com.soyea.util;import java.io.Serializable;import java.util.List;/*** 分页工具类*/public class PageBean implements Serializable {private static final long serialVersionUID -8741766802354222579L;private int pageSize5; // 每页显示多少条…

xxx定律-poj-3782

xxx定律 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1639 Accepted Submission(s): 1303 Problem Description 对于一个数n&#xff0c;如果是偶数&#xff0c;就把n砍掉一半&#xff1b;如果是奇数&#x…

asp.net 检测访问者是iphone,android,web(摘录)

aps.net 可以使用WebFormViewEngine来实现。 参考文章&#xff1a;http://www.hanselman.com/blog/MixMobileWebSitesWithASPNETMVCAndTheMobileBrowserDefinitionFile.aspx 源代码 C#代码 public class MobileCapableWebFormViewEngine : WebFormViewEngine { public…