数据库分批查询数据

数据分批查询数据

前段时间由于线上项目的活动问题,发现向第三方系统请求数据的时候,请求的数据量竟然达到了3w多,请求的数据的方式采用Http请求的形式,事先没有想到会有这么多的数据量,所以只能分批去其他系统请求数据,每次请求200条,具体情况为:

在数据库中存在一张表,主要字段有user_id(用户名),count(物品数量),系统要求能够实时更行用户的物品数量,但是保存物品数量的接口不在自己的系统中,所以需要想起他的系统请求数据,主要是每次如何获得用户user_id,又不重复。主要学习的是用数据库Sql 语句的学习:

select top 200 user_id from(
		    SELECT
		  (Row_number()
		         OVER(
		           ORDER BY user_id)) as ix,
		       user_id
			FROM   [xxx].[dbo].t_world_cup_exchange_user_flag_list
		  GROUP  BY user_id
		  ) tt
where tt.ix > #{index,jdbcType=VARCHAR}

主要使用数据库函数,Row_number为返回的结果集生成特定的序列号,利用这个函数就能实现每次用200个不同的用户去请求数据,如从0~200,201~401,401~601... ...这样的序列开始选择自己需要的用户Id,当然在自己的程序需要保存这个index游标的值,并且保持能够循环。

--- --- 路漫漫其修远兮,吾将上下而求索

数据库分批查询数据

时间: 2024-09-29 08:46:40

数据库分批查询数据的相关文章

php 基本连接mysql数据库和查询数据

连接数据库,有三种方法 1. 常规方式: $con=mysql_connect($dbhostip,$username,$userpassword) or die("Unable to connect to the MySQL!"); $db = mysql_select_db($dbdatabasename,$con);//执行语句 $qres=mysql_query("SELECT id,GoodsName FROM user"); //提取一条数据 11 $r

在MongoDB数据库中查询数据(上)

在MongoDB数据库中,可以使用Collection对象的find方法从一个集合中查询多个数据文档,find方法使用方法如下所示: collection.find(selector, [options]); selector值为一个对象,用于指定查询时使用的查询条件,options是可选的参数,该参数值是一个对象,用于指定查询数据时所选用的选项. find方法返回一个代表游标的Cursor对象,在该游标中包含了所有查询到的数据文档信息.可以使用Cursor对象的toArray方法获取所有查询到

MongoDB数据库中查询数据(下)

在find中,options参数值为一个对象,用来设置查询数据时使用的选项,下面我们来对该参数值对象中可以使用的属性进行介绍: 1. fields; 该属性值为一个对象,该对象中各属性名用来显示指定在查询结果中需要包含或排除的字段.该属性值可以为1或0,当属性值为1时,代表需要在查询结果中包含该字段,当属性值为0时,代表需要在查询结果中排除该字段.注意:在使用fields属性时,需要统一使用属性值1或属性值0来设置除_id字段之外的所有字段. 首先我们来看下数据库中有哪些数据,如下所示: 下面我

通过sqlHelper访问数据库,查询数据

使用最简单的方式进行对数据库访问,并且查询返回需要的数据:如下步骤: 一.web.config 配置 <connectionStrings> <add name="ABConnection" connectionString="Data Source=.;Initial Catalog=xx_Db;User ID=xx;Password=789xxxxxxx;" providerName="System.Data.SqlClient&qu

MySql数据库,查询数据导出时会出现重复的记录(数据越多越明显)

在查询数据时,数据量多的时候,我们会使用分页功能. 每页显示多少数据. 这种情况下,一半看不出什么问题. 而导出数据时,有时就是通过分页的方法,逐步讲数据追加到导出文件中. 当全部数据都导出之后,就有可能会出现重复的记录数. 原因也算简单,MySql排序字段如果有相同的值,如果没有其他限定,不能保证每次都是同样的顺序. 有可能A在前,B在后,也可能反过来. 这样如果翻页时正好交换了,可能就会出现两个A,少各B. 解决办法就是增加一个不会重复的字段排序.比如ID(自增)字段,一定不会重复. 这样就

使用JDBC从数据库中查询数据

* ResultSet 结果集:封装了使用JDBC 进行查询的结果 * 1. 调用Statement 对象的 executeQuery(sql) 方法可以得到结果集 * 2. ResultSet 返回的实际上就是一张数据表,有一个指针指向数据表的第一行的前面, * 可以调用next()方法检测下一行是否有效,若有效,返回true,且指针下移, * 相当于iterator 对象的 hasNext() 和 next()方法的结合体 * 3. 当指针定位到一行时,可以通过调用getXxx(index)

在数据库中查询数据——方法封装

<?php class DBDA { public $host="localhost"; //数据库地址 public $uid = "root"; //数据库用户名 public $pwd = ""; //密码 //执行sql语句,返回相应的结果 //参数:$sql代表执行的sql语句:$type是sql语句类型0代表查询,1代表其他:$db代表操作的数据库 public function Query($sql,$type=0,$db=&

JDBC操作数据库之查询数据

以数据库中查找图书信息,并将信息显示在jsp页面当中为例,下面贴上代码片段: (1)在index.jsp页面代码body中只要添加如下一段代码: <a href="FindServlet">查看所有图书</a> (2)FindServlet.java类代码 1 package com.lyq.bean; 2 import java.io.IOException; 3 import java.sql.Connection; 4 import java.sql.Dr

JSP连接SQL数据库并且查询数据

具体代码如下: <!--导入包--> <%@ page language="java" import="java.util.*" %> <%@page import="java.sql.*" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE HTM